상속보다는 합성을 우선시하자
상속은 도형 - 동그라미 관계에서 도형은 각, 면적, 기타 등의 필드가 존재한다.
상속은 캡슐화를 깨트릴 우려가 있다.
➡️ 캡슐화가 깨진다? : 상위 클래스를 수정하였을 때 하위 클래스에 미치는 영향이 생긴다는 뜻에서 캡슐화가 깨진다고 묘사
또한 상속을 이용하게 되면 상위 클래스에 변경이 생기게 될 경우 상속받은 모든 하위 클래스에서 변경이 일어난다.
순수한 is-a 관계에서만 상속을 사용하고, 그 외의 경우에는 합성을 사용하는 것이 바람직하다
자바 9 이상부터 정적 팩토리 메서드를 지원한다. Arrays.asList 안 쓰고 List.of, Map을 새로 생성 할 때는 Map.of을 사용하자.
다만 불변 객체가 되기 때문에 UnsupportedOperationException을.. 만나게 될 수도 있다^^
중간에 전달 클래스를 만들어서 사용하자. 다른 인스턴스를 감싸고 있기 때문에 이를 래퍼 클래스라 부른다.
합성을 권장하지 않는 환경 - 콜백 프레임워크
bec. 자기 자신의 참조를 다음 객체에 넘겨서 다음 호출 때 사용하도록 한다. 그러나 해당하는 타입이 정확히 구현체인 하위 클래스인지 명시할 수 없어지는 문제가 생긴다.
'Book > DEV' 카테고리의 다른 글
만들면서 배우는 클린 아키텍쳐 (1) | 2024.12.11 |
---|