委托事件模型模式Java
应用此模式委托事件模型时,将所有代码放在委托事件模型模式Java,java,design-patterns,delegation,Java,Design Patterns,Delegation,应用此模式委托事件模型时,将所有代码放在fire…方法中并从public方法传递参数是否正确 像这样 public void addBananas(Banana banana) { fireBananaAdded(banana); } private void fireBananaAdded(Banana banana) { //Create event etc and add banana to list here } 或者我应该在addBananas方法中使用本例中的
fire…
方法中并从public方法传递参数是否正确
像这样
public void addBananas(Banana banana) {
fireBananaAdded(banana);
}
private void fireBananaAdded(Banana banana) {
//Create event etc and add banana to list here
}
或者我应该在
addBananas
方法中使用本例中的add to list部分吗?因为如果我这样做,我就没有机会将香蕉对象“附加”到事件对象,事件对象将被传递给监听器,对吗?我会在addBanana()
中加入尽可能多的与实际添加香蕉相关的逻辑
当我使用完addbananaadded()
,我会调用firebanaadded()
,它将生成相应的BananaAddedEvent
,并将其发送到BananaAddedListeners
(或者只调用BananaAddedListeners
)
在FIRE方法中加入ADD逻辑非常简单
public void addBananas(Banana banana) {
if(BananaHolder.hasRoom()) {
BananaHolder.add(banana);
fireBananaAdded(banana);
}
}
private void fireBananaAdded(Banana banana) {
BananaAddedEvent event = new BananaAddedEvent(banana);
for(BananaListener listener : listenersByType(Banana.class)) {
listener.bananaAdded(event);
}
}
我在命名惯例上有一些自由,因为这样做很愚蠢。好吧,我需要停止用双关语,否则人们会认为我很有果味。啊!别这样,辉光!