상속을 사용한 중복코드 제거
- 상속을 사용해 중복코드를 제거할 수 있지만 결합도가 올라가는 문제가 생긴다.
- 자식 클래스 안에서 super 참조를 이용해 부모 클래스의 메서드를 직접 호출할 경우 두 클래스는 강하게 결합
취약한 기반 클래스 문제
- 취약한 기반 클래스 : 부모클래스의 변경에 의해 자식 클래스가 영향을 받는 현상
- 객체지향 프로그래밍의 취약점
불필요한 인터페이스 상속 문제
- 상속받은 부모 클래스의 메서드가 자식 클래스의 내부 구조에 대한 규칙을 깨트릴 수 있다메서드 오버라이딩의 오작용 문제
- 자식 클래스가 부모클래스의 메서드를 오버라이딩할 경우 부모 클래스가 자신의 메서드를 사용하는 방법에 자식클래스가 결합될 수 있다부모클래스와 자식클래스의 동시 수정 문제
- 클래스를 상속하면 결합도로 인해 자식 클래스와 구현을 영원히 변경하지 않거나, 자식 클래스와 부모클래스를 동시에 변경하거나 둘 중 하나를 선택할 수밖에 없다
중복을 제거하기 위해 상속을 도입할 때 따르는 두 가지 원칙
- 두 메서드가 유사하게 보인다면 차이점을 메서드로 추출하라. 메서드 추출을 통해 두 메서드를 동일한 형태로 보이도록 만들 수 있다
- 부모 클래스의 코드를 하위로 내리지 말고 자식 클래스의 코드를 상위로 올려라. 부모 클래스의 구체적인 메서드를 자식 클래스로 내리는 것보다 자식 클래스의 추상적인 메서드를 부모 클래스로 올리는 것이 재사용성과 응집도 측면에서 더 뛰어난 결과를 얻을 수 있다
차이에 의한 프로그래밍
- 차이에 의한 프로그래밍 : 기존 코드와 다른 부분만을 추가함으로써 애플리케이션의 기능을 확장하는 방법
- 합성을 사용해 상속의 단점을 피해야 한다
'IT자료실 > 기술서적' 카테고리의 다른 글
오브젝트 - 기술서적 스터디 12단원-다형성 (0) | 2023.11.02 |
---|---|
오브젝트 - 기술서적 스터디 11단원-합성과 유연한 설계 (0) | 2023.11.02 |
오브젝트 - 기술서적 스터디 9단원-유연한 설계 (0) | 2023.08.24 |
오브젝트 - 기술서적 스터디 8단원-의존성 관리하기 (0) | 2023.08.08 |
오브젝트 - 기술서적 스터디 7단원-메시지와 인터페이스 (0) | 2023.07.24 |