IT자료실/기술서적

오브젝트 - 기술서적 스터디 10단원-상속과 코드의 재사용

Ramda 2023. 8. 24. 22:15

상속을 사용한 중복코드 제거

  • 상속을 사용해 중복코드를 제거할 수 있지만 결합도가 올라가는 문제가 생긴다.
  • 자식 클래스 안에서 super 참조를 이용해 부모 클래스의 메서드를 직접 호출할 경우 두 클래스는 강하게 결합

취약한 기반 클래스 문제

  • 취약한 기반 클래스 : 부모클래스의 변경에 의해 자식 클래스가 영향을 받는 현상
  • 객체지향 프로그래밍의 취약점

불필요한 인터페이스 상속 문제

  • 상속받은 부모 클래스의 메서드가 자식 클래스의 내부 구조에 대한 규칙을 깨트릴 수 있다메서드 오버라이딩의 오작용 문제
  • 자식 클래스가 부모클래스의 메서드를 오버라이딩할 경우 부모 클래스가 자신의 메서드를 사용하는 방법에 자식클래스가 결합될 수 있다부모클래스와 자식클래스의 동시 수정 문제
  • 클래스를 상속하면 결합도로 인해 자식 클래스와 구현을 영원히 변경하지 않거나, 자식 클래스와 부모클래스를 동시에 변경하거나 둘 중 하나를 선택할 수밖에 없다

중복을 제거하기 위해 상속을 도입할 때 따르는 두 가지 원칙

  • 두 메서드가 유사하게 보인다면 차이점을 메서드로 추출하라. 메서드 추출을 통해 두 메서드를 동일한 형태로 보이도록 만들 수 있다
  • 부모 클래스의 코드를 하위로 내리지 말고 자식 클래스의 코드를 상위로 올려라. 부모 클래스의 구체적인 메서드를 자식 클래스로 내리는 것보다 자식 클래스의 추상적인 메서드를 부모 클래스로 올리는 것이 재사용성과 응집도 측면에서 더 뛰어난 결과를 얻을 수 있다

차이에 의한 프로그래밍

  • 차이에 의한 프로그래밍 : 기존 코드와 다른 부분만을 추가함으로써 애플리케이션의 기능을 확장하는 방법
  • 합성을 사용해 상속의 단점을 피해야 한다