2023.09.05 TUE
335p ~ 348p
25일차 내용 ⬇️
2023.09.04 - [개발 서적 기록/오브젝트_조영호] - 25일차 - 상속의 위험성 : 결합도 증가&캡슐화 감소
25일차 - 상속의 위험성 : 결합도 증가&캡슐화 감소
2023.09.04 MON 322p ~ 335p 24일차 내용 ⬇️ 2023.08.29 - [개발 서적 기록/오브젝트_조영호] - 24일차 - DIP와 중복 코드 제거하기 24일차 - DIP와 중복 코드 제거하기 2023.08.29 TUE 300p ~ 322p 23일차 내용 ⬇️ 2023.
magenta-ming.tistory.com
추상화를 통한 코드 중복 해결 - 중복 코드를 부모 클래스로 올리기
모든 클래스가 추상화에 의존하도록 만들어야한다.
중복되는 코드가 있다면 공통된 부분을 부모 클래스로 이동시킨다.
중복된 코드 중, 인스턴스 변수보다 메서드를 먼저 부모 클래스로 옮기는 것이 좋다.
메서드에 필요한 메서드나, 인스턴스 변수가 무엇인지 컴파일 에러를 통해 파악할 수 있기 때문이다.
이렇게 공동 코드를 이동시키면, 각 클래스에 대한 변경 이유가 확실해진다.
하위 클래스는 공동 코드에 대해 변경할 책임이 없어진다. 각각 하나의 변경이 이유를 가지게 된다.
이를 통해 클래스들이 단일 책임 원칙을 준수할 수 있게 되어 응집도가 높아진다.
단순히 부모 클래스로 이동시키는 것이 아니라, 추상화와 함께 부모 클래스로 이동시켰을 때 결합도를 낮출 수 있다.
만약 중복된 메서드를 이동시켰다면, 자식 클래스는 부모 클래스에서 정의한 추상 메서드에만 의존하게 되기 때문에, 부모 클래스의 내부 구현이 변경되더라도 자식 클래스는 영향을 받지 않는다.
추상화에 의존함으로써, 낮은 결합도를 유지하게 된다.
상속은 어떤 방식으로든 클래스 간의 결합도를 만들어내는데, 추상 메서드를 통해 어느정도 완화할 수 있는 것이다.
'개발 서적 기록 > 오브젝트_조영호' 카테고리의 다른 글
29일차 - 믹스인을 통해서 상속 대체하기 (0) | 2023.09.08 |
---|---|
27, 28일차 - 합성을 통해 상속의 한계 해결하기 (0) | 2023.09.07 |
25일차 - 상속의 위험성 : 결합도 증가&캡슐화 감소 (0) | 2023.09.04 |
24일차 - DIP와 중복 코드 제거하기 (0) | 2023.08.29 |
23일차 - 의존성 주입 (0) | 2023.08.25 |