我有所有观察同一事件的活动观察员,因此我有一个观察这一事件的抽象超级大队,然后是次流压/执行具体功能。
问题在于,除非我把活动观察员方法放在次级别上(这不符合我的设计目的),否则它就没有观察活动。
我当然能够这样做,但我希望尽可能少地写法。
它是否应当这样做(我做一些其他错误的事情吗?)
如果要这样做,我就可以写上一件事的生产者,然后是拦截者。 我认为,我的第一个做法比较简单,而且更有可能被其他开发商适当使用。
例如:
SuperClass:
public abstract class AbstractFileWriter
{
public void onReady(@Observes ReadyEvent readyEvent)
{
try
{
handleReady(readyEvent, ...);
}
}
protected abstract handleReady(ReadyEvent readyEvent, otherParameters go here);
}
SubClass
public class XmlWriter extends AbstractFileWriter
{
protected handleReady( ... )
{ ... }
}
如果我这样写的话,就永远不会援引Ready(在这个问题上,两者都不会重新使用);然而,如果我用子类内的观察方法书写,它就能够发挥预期的作用。 我想这样写一下,因为只有少得多的法典一(d)才需要写字,而稍微少一点的抽象性,可以更容易理解。
Walter