Java中有效項目16:如何理解構成和轉發方法?
幸運的是,有一種方法可以避免以前的所有問題。不要擴展現有的類,而應爲新類指定一個引用現有類的專用字段。
然後我得到的代碼細節來說明:我感覺困惑
public class InstrumentedSet<E> extends FowardingSet<E> {
private int addCount = 0;
public InstrumentedSet(Set<E> s) {
super(s);
}
public boolean add(E e) {
addCount++;
super.add(e);
}
...
public int getCount() {
return addCount;
}
}
public class ForwardingSet<E> implements Set<E> {
private final Set<E> s;
public ForwardingSet(Set<E> s) {
this.s = s;
}
public boolean add(E e) {
return s.add(e);
}
...
}
:這裏是私人的參考?我明顯地看到了extends關鍵字,那麼代碼中的組成在哪裏?
它可能在'ForwardingSet'的定義中。 –
哪個版本的Effective Java是這樣的?在第二版中,第18項是「優先接口到抽象類」。你在談論第16項嗎? –
@vivin你是對的。這是一個錯字錯誤。我也更新了文字。 –