ファミリー ( 、 、 ) に属するクラスと、ファミリー( 、、) に属するクラスFooがBabyFooありMamaFooます。各家族内で、家族のメンバーを参照するのは簡単です。たとえば、自分の子供について言及する場合、彼女は明示的に. しかし、どのファミリが要求を処理しているかを知らずに、クラスがファミリ ( 、、 )のメンバーに対してコードを実行する場合があります。PapaFooBarBabyBarMamaBarPapaBarMamaFooBabyFooLouBabyMamaPapa
LouJavaで一般的にどちらかのファミリーのメンバーを参照するにはどうすればよいですか?
これまでの私の(貧弱な)解決策は、委任を使用することです。Lou は、2 つのファミリーのメンバーに対してコードを実行しません。代わりに、2 つのゲートウェイ クラスが からのすべての着信要求を処理しFamilyFooます。FamilyBarLou
FamilyFooそしてFamilyBar、そのファミリ内のクラスを明示的に参照します。ポリモーフィズム (との両方の親であるLouへのデリゲート) は、ある程度のコード エコノミーが達成されることを意味しますが、このソリューションはかなりのコードの重複をもたらすため、貧弱であることが判明しました。Family referenceFamilyFooFamilyBar
もっと上手にできますか?