로딩 중...
역할(Lion/Staff) 분리 정책을 인터페이스로 추상화
구현 지침 탭에서 각 단계를 클릭하여 완료 표시할 수 있습니다.
이 미션에서 무엇을 배우고 어떤 경험을 하게 되는지 확인하세요.
역할을 묻는 조건문 대신, 역할을 가진 객체에게 판단을 맡기는 다형성 구조를 설계한다.
2주차에선 아기사자 한 명을 하나의 객체로 만들고, 그 객체가 자신의 상태를 스스로 판단하는 구조를 만들었습니다. 이번 3주차에서는 여기서 한 단계 더 나아가, "이 객체가 어떤 역할을 가진 존재인가?"를 구조로 나타내봅니다.
실제로 멋쟁이사자처럼 활동을 떠올려보면 모든 사람이 같은 역할을 가지고 있지는 않습니다. 아기사자는 과제를 제출하는 역할이고, 운영진은 과제를 관리하는 역할입니다.
역할은 다르지만, 시스템은 이 사람들에게 공통적으로 "이 사람은 과제를 제출할 수 있는가?"라는 질문을 던지게 됩니다. 이 질문을 가장 단순하게 처리하면 보통 역할을 확인하는 조건문이 등장합니다.
if (role.equals("LION")) {
// 과제 제출 가능
} else if (role.equals("STAFF")) {
// 과제 제출 불가
}하지만 이 방식은 역할이 늘어날수록 조건문이 계속 추가되고, 판단 기준이 객체 바깥으로 흩어지게 됩니다.
이번 미션에서는 이 문제를 상속, 추상화, 다형성을 사용해 구조적으로 해결합니다.
즉, 역할을 묻는 코드 대신 역할을 가진 객체에게 판단을 맡기는 구조를 설계해보는 것이 이번 주차의 핵심입니다.