わかりました、私がクラスを持っていると仮定します.XとXは他のオブジェクトとの集合関係を持つものです。X をサッカー スタジアムとしましょう。
Xはクラスの観客でいっぱいです。ただし、特定のアクティビティに対する各観客の行動は異なります。IF ステートメントの代わりに、動的バインディングを使用できるように、さまざまな動作をスペクテーター クラス内に配置したいと考えています。
しかし問題は、観客が行う行動が「サッカースタジアム」クラスに影響を与えることです。それで、私は「これ」をサッカー スタジアム クラスからメソッドを介して Spectator クラスに渡し、観客クラスがサッカー スタジアム クラスに対して何かを実行できるようにすることを考えていました。
public class SoccerStadium{
SpecatorInterface s = new Spectator();
public void SpectatorBehaviour(){
s.doSomething(this);
}
public void doSomethingthingBySpecator(){
}
}
public class Spectator implements SpecatorInterface{
public void doSomething(SoccerStadium s){
s.doSomethingthingBySpecator();
}
}
Specator.doSomething()
動的バインディングを使用して動作を変更し、SoccerStadium に渡される属性として多くの異なるタイプの SpectatorSuperClass を持ち、異なる動作を実行できるようにするために、これを実行したいだけです。
編集: を渡すのではなく、Spectator コンストラクターを介して、Stadium の参照を Specator に渡すとどうなりthis
ますか?