2023.09.08 FRI
376p ~ 392p
28일차 내용 ⬇️
2023.09.07 - [개발 서적 기록/오브젝트_조영호] - 27, 28일차 - 합성을 통해 상속의 한계 해결하기
27, 28일차 - 합성을 통해 상속의 한계 해결하기
2023.09.07 THU 346p ~ 377p 26일차 내용 ⬇️ 2023.09.05 - [개발 서적 기록/오브젝트_조영호] - 26일차 - 중복 코드를 추상화에 의존하는 부모 클래스로 올리기 26일차 - 중복 코드를 추상화에 의존하는 부모
magenta-ming.tistory.com
클래스 상속보다는 객체를 합성하자
클래스 상속은 부모 클래스의 세부적인 구현에 의존해야한다. 그래서 결합도가 높아진다.
합성을 사용하면 코드를 재사용하면서도, 결합도를 낮게 유지할 수 있다. 퍼블릭 인터페이스를 이용하기 때문이다.
이러한 클래스 상속은 구현 상속이기 때문에 단점을 가지지만, 인터페이스 상속이라면 상황이 다르다.
믹스인 : 상속과 합성 함께 사용하기
상속을 사용해 다른 클래스를 간편하게 재사용하고 점진적으로 확장할 수 있다는 장점에 결합도를 낮추는 합성의 장점을 갖출수 있는 방법이다.
객체를 생성할 때, 코드 일부를 클래스 안에 섞어 넣어 재사용하는 방법이다.
믹스인 기법은 상속처럼 코드를 재사용할 수 있지만, 부모 클래스의 코드를 이어 받아 이용하거나 확장한 개념이 아니다.
상속이 클래스 간의 관계를 고정시킨다면, 믹스인은 관계를 유연하게 재구성할 수 있다는 점에서도 차이가 있다.
믹스인을 통한 변경
믹스인은 특정한 클래스의 메서드를 재사용하고 기능을 확장하기 위해 사용할 수 있다.
상속 계층 안에서 확장한 클래스보다 더 하위에 위치한다. 그래서 추상 서브 클래스라고 부를 수 있다.
슈퍼클래스로부터 상속될 클래스를 명시하게 되기 때문에 믹스인을 통해 매우 다양한 클래스를 도출하면서도 서로 다른 서브 클래스를 이용해 인스턴스화할 수 있다.
이를 통해서 점진적인 확장을 만들 수 있다.
'개발 서적 기록 > 오브젝트_조영호' 카테고리의 다른 글
31일차 - 업캐스팅 & 동적 바인딩 그리고 동적 메서드 탐색 (0) | 2023.09.11 |
---|---|
30일차 - 다형성의 종류 (0) | 2023.09.10 |
27, 28일차 - 합성을 통해 상속의 한계 해결하기 (0) | 2023.09.07 |
26일차 - 중복 코드를 추상화에 의존하는 부모 클래스로 올리기 (0) | 2023.09.05 |
25일차 - 상속의 위험성 : 결합도 증가&캡슐화 감소 (0) | 2023.09.04 |