아이템18 상속보다는 컴포지션을 사용하라
Effective Java 3e 아이템 18를 요약한 내용 입니다.
public class InstrumentedHashSet<E> extends HashSet<E> {
private int addCount = 0;
@Override
public boolean add(E e) {
addCount++;
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
addCount += c.size();
return super.addAll(c);
}
public int getAddCount() {
return addCount;
}
...
}하위 클래스가 깨지기 쉬운 이유는 더 있다.
컴포지션 대신 상속을 사용하기로 결정하기 전에 마지막으로 자문해야 할 질문을 소개한다.
정리
Last updated