public interface Component{}
public class AppManager {
public void doWork(){
SomeComponent comp = new SomeComponent ();
AddComponentToList(comp);
}
public void AddComponentToList(Component compo){
componentList.add(compo);
}
/* Give me the component I want. */
public Component getComponent(Component comp){
for (Component component : getComponentList()) {
if (component instanceof comp) {
return component;
}
}
}
private ArrayList<Component> componentList = new ArrayList<Component>();
}
public class SomeComponent implements component {
public void MyMethod() {
appManager.getComponent(SomeComponent );
}
public void setAppMnger(AppManager appm){
this.appManager = appm;
}
private AppManager appManager ;
}
上記のコードでは、AppMnger はコンポーネントのリストを持っています。コンポーネントは相互に通信しています。したがって、あるコンポーネントが別のコンポーネント インスタンスを知りたい場合は、AppMnger の getComponent(comp) メソッドを呼び出します。しかし、instanceof 演算子を使用するとエラーが発生します。各コンポーネントにリストを比較させたくありませんが、そのタスクを AppMnger に委任したいと考えています。AppMnger は、作成したコンポーネントについて知っているからです。エイミーは思った?