-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
ch13서브클래싱과 서브타이핑서브클래싱과 서브타이핑
Description
💡 이슈
instanceof를 지양하는 이유는 무엇일까요?
책에 언급된 것처럼 instanceof를 사용하면 개방 폐쇄 원칙을 준수하지 않는다는 것을 알 수 있습니다.
여기서 조금 더 생각을 발전시켜 보면 다음과 같은 사실에 도달할 수 있습니다.
상속 구조에서 instanceof를 사용하는 것은 클라이언트가 서브 타입(자식)을 구분하기 위한 목적입니다.
반면 상속을 사용하는 목적은 서브 타이핑과 유연한 설계에 있습니다.
결국 instanceof 사용은 상속의 목적과 반대되는 행동이라고 할 수 있습니다.
이전에 코치님들이 객체지향 체조 원칙을 무작정 따르지 말고 이 원칙이 왜 존재할 지 생각해볼 것을 추천했었습니다.
그런 관점에서 instanceof를 지양하라는 원칙은 곧 과연 적절한 상속인가를 다시 고려해보라라는 말로 이해할 수 있습니다.
스스로 내린 작은 깨달음 정도이기 때문에 같이 얘기해보고 발전시킬 수 있으면 좋겠습니다~!
bonus
그렇다면 instanceof는 왜 존재할지에 대해서도 같이 생각해봐요
❓ 이유
우아한테크코스에서 자주 접했던 객체지향 생활 체조 원칙에는 instanceof를 지양하라는 원칙이 있습니다.
그동안에는 instanceof라는 기능만 바라보며 편한데 굳이? 왜? 라는 의문이 강하게 들었습니다.
하지만 이번 장을 읽으면서 스스로 답을 내릴 수 있었습니다.
따라서 제 생각을 공유하고 같이 얘기 나눠보고 싶습니다.
📖 관련 페이지
- 13장 전체
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ch13서브클래싱과 서브타이핑서브클래싱과 서브타이핑