委任パターンから把握したのは、別のクラス (ClassB) が行うことを行うクラス (ClassA) です。また、ClassA は、ClassB よりも多くのことを行う必要があります (より多くのメソッドを使用する必要があります)。ClassA のサブクラスを ClassB にするだけの誘惑に駆られるかもしれません。この誘惑に抵抗してください。なぜなら、それは間違ったことだからです。継承は本質的に低速です。適切な設計には、ClassA で ClassB 型のデータ メンバを定義することが含まれます。このようにして、サブクラス化の必要性を排除し、結合強度を減らしました
//ClassA
public class ClassA{
private ClassB classB;
//methods
public void doThis(){classB.doThis();}
public void doThat(){…}
}
そしてこれがクラスBです
ClassB
public class ClassB{
public void doThis(){…}
}
私の理解が正しいことをアドバイスしてください。