Java-特定对象上方法的侦听器

马库斯

是否可以为特定对象上的方法创建侦听器。

对象A创建对象B。对象A想知道何时调用B.drive(),但不关心何时调用对象C(与B相同的类)C.drive()。

马西耶·西科拉

是的,通常使用侦听器模式来侦听特定对象。因此,在对象B和C的类中创建方法,setListener(SomeClassListener listener)并在drive类的方法中检查是否设置了侦听器,如果是,则从侦听器运行方法。

据我了解,您的情况A对象实现了Factory模式-它创建对象,因此对象A也应该是Listener,并且当它创建对象B时要调用b.setListener(a),而创建对象C时不要调用此方法。

最终,如果创建应该在对象A(应该是!)内部,则在对象A的类中创建带有参数的工厂方法:

SomeClass createObj(boolean setListener){

     SomeClass obj=new SomeClass();
     if (setListener){

        obj.setListener(this);
     }

     return obj;
}

因此,对于对象B的创建将如下所示:

SomeClass b=a.createObj(true);

对于对象C(不监听)

SomeClass c=a.createObj();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章