静的型付け言語の潜在開発生産性は今の100倍
■ このスレッドは過去ログ倉庫に格納されています
0102デフォルトの名無しさん
2013/03/11(月) 08:53:20.04>新しいinterface間同士の委譲が必要になったら、
>その都度class作ってSelectorDを書かなきゃならんのか?
SelectorDの実装を色々な委譲先に対して共有したいのであれば、実装を共有する定石に従って
SelectorDはabstract classに実装すればOKだと思う。仮にSelectorDの実装が「今まだ知れぬ」
委譲先に依存する部分があれば、それはabstractメソッドとして列挙しておく。
public abstract class AbstractFat {
public abstract String a();
public abstract String b();
public String c(){
return this.a() + this.b() + "c";
}
}
で、具象クラスでは単に継承して委譲先を注入するだけ。委譲先のインターフェイス(この
場合はThin)がSelectorDの実装に必要な依存性を十分に提供していない場合(a()が無いとか)は
コンパイルで蹴られるので多い日も安心。
public class Fat extends AbstractFat implements Thin{
@Delegate private Thin thin;
public Fat(Thin thin) {super(); this.thin = thin;}
}
■ このスレッドは過去ログ倉庫に格納されています