2011-05-01 2 views
1

이 패턴 위임 이벤트 모델을 적용 할 때 fire... 메서드에 모든 코드를 삽입하고 공용 메서드의 매개 변수를 전달하는 것이 맞습니까? 이위임 이벤트 모델 패턴 Java

public void addBananas(Banana banana) { 
    fireBananaAdded(banana); 
} 

private void fireBananaAdded(Banana banana) { 
    //Create event etc and add banana to list here 
} 

아니면 내가 대신 addBananas 방법이 예제에서 일부를 나열하는 추가 기능을 가져야한다처럼

? 왜냐하면 내가 이렇게하면 바나나 객체를 청취자에게 전달 될 이벤트 객체에 "부착"할 수있는 기회가 없기 때문입니다.

답변

3

나는 실제로 할 수있는 바나나를 추가하는 것과 관련된 많은 논리를 addBanana()에 넣을 것이다.

내가 addBanana()로 끝났어요 때, 나는 적절한 BananaAddedEvent을 생성 할 fireBananaAdded()를 호출하고 BananaAddedListeners로 보낼 것입니다 (지금 당신이 가진하거나 BananaListeners.)

을에 추가 논리를 넣으려면 소방 법은 간단합니다. 바나나!

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); 
    } 
} 
+0

이름 지정 규칙에서 몇 가지 자유가 생겼습니다. 좋아, 나는 그 말장난으로 멈출 필요가있다. 그렇지 않으면 사람들은 내가 과일 같다고 생각할 것이다. 가! 그만, 노을! – corsiKa

+0

고맙습니다. 그 말이 맞습니다. 수업의 과일 바구니로 돌아가는 것이 좋습니다 ... – LuckyLuke