이펙티브 자바! 계승하는 대신 구성하자! 계승(상속)은 코드 재사용을 돕는 강력한 도구지만, 항상 최선이라고는 할 수 없다. 계승(상속)을 적절히 사용하지 못한 소프트웨어는 깨지기 쉽다. 한 클래스가 다른 클래스를 상속(extends) 한다는 소리이다. 인터페이스의 상속을 말하는 것은 아니다. 또한 인터페이스가 인터페이스를 상속하는 것도 포함되지 않는다. 메서드 호출과 달리 계승(상속)은 캡슐화 원칙을 위반한다. 하위 클래스가 정상 동작하기 위해서는 상위 클래스의 구현에 의존할 수 밖에 없다. 상위 클래스의 구현이 릴리즈가 거듭되면서 자주 바뀌는데 그러다 보면.. Read More