在JAVA我经常使用这种模式:爪哇听者除去
class A{
void addListener(Listener obj);
void removeListener(Listener obj);
}
class B {
private A a;
B(A a){
this.a=a;
a.addListener(myListener)
}
private final myListener=new Listener(){
void listener();
}
public void dispose(){
a.removeListener();
}
}
通常A表示的数据集和B需要通过添加监听到对象A,以这样做是在A中的数据的变化作出反应当一个新的B实例被构造时。
由于对象a存在于A之外,因此此方法迫使我创建一个dispose()方法,该方法将侦听器从对象a中移除。
虽然我知道精心设计的JAVA代码通常不需要dispose()方法。 这种模式是一种糟糕的设计吗?你能否提出其他方法?
在此先感谢您的帮助。
这可能是相关的:http://stackoverflow.com/questions/171952/is-there-a-destructor-for-java –