서론

합성 : 새로운 클래스의 인스턴스 안에 기존 클래스의 인스턴스를 포함시키는 방법

사실, 책에서 주구장창 얘기하는 것은 상속보단 다형성을, 다형성보단 합성을 하라는 것이 저자가 전달하고자 하는 목표다. 다형성을 이룸으로써 책임을 할당하게 되고, 이를 통해 각 역할의 상호 협력을 통해 일관성 있는 설계가 이뤄지기 때문이다.


상속과 중복코드

DRY 원칙 - 반복하지마라.

중복 코드는 변경을 방해한다.

지식은 항상 변하며, 그에 맞춰 지시식을 표현하는 코드로 변경해야 한다.

만약, 중복 코드를 갖는다면 코드를 수정하는 데 필요한 노력을 몇 배로 증가시킨다.

우선 어떤 코드가 중복인지를 차자.

→ 중복 여부를 결정하는 기준은 코드가 변경에 반응하는 방식이다.

→ 어떻게 반응하는 것일까 ?

중복 코드는 프로그램의 유지보수성을 떨어뜨리는 주요 원인 중 하나입니다. 코드가 변경에 반응하는 방식을 이해하려면, 먼저 코드가 어떤 상황에서 변경이 요구되는지를 알아야 합니다. 코드 변경의 요구는 대개 다음과 같은 상황에서 발생합니다.

  1. 기능 추가 또는 수정 새로운 요구사항이 생겼거나 기존 기능을 변경해야 할 때, 관련된 모든 코드를 찾아 수정해야 합니다. 중복 코드가 있다면, 모든 중복된 부분을 일일이 찾아 수정해야 하므로 더 많은 노력과 시간이 소요됩니다.
  2. 버그 수정 오류가 발견되었을 때, 그 오류가 중복된 코드에 존재한다면 모든 중복된 부분에서 같은 수정이 필요합니다. 이는 수정해야 할 범위를 넓히고, 일부를 놓칠 위험을 증가시킵니다.
  3. 리팩토링 코드의 구조를 개선하거나, 더 효율적인 알고리즘으로 변경하고자 할 때 중복 코드는 과정을 복잡하게 만듭니다. 중복된 로직을 한 곳에 모으는 것만으로도 코드의 가독성과 유지보수성이 크게 향상될 수 있습니다.