委托事件模型模式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);
    }
}

我在命名惯例上有一些自由,因为这样做很愚蠢。好吧,我需要停止用双关语,否则人们会认为我很有果味。啊!别这样,辉光!