乒乓球問題
來源:程序員人生 發布時間:2014-10-12 10:30:04 閱讀次數:2054次
乒乓球問題,指方法的來回調用.
1.一場Party
在偽中介模式(5.5)中,Boy與Boy、Boy與Girl的聊天,是典型的乒乓球。
public class Boy extends Actor{
@Override public void send(String message,Actor to){
pln(this.name+" To "+to.name+":""+message+""");
to.receive(message,this);
}
@Override public void receive(String message,Actor from){
char c = (char)(Math.random()*4+'a');
if(c!='b'){
String msg = message+" "+c;
send(msg,from);
}
}
}
對象a. send(String message,Actor to)代碼中b..receive(message,this),而b.receive()代碼中自己又send()。
2.回調
有人說,回調是“你調用我,我調用你”。這種錯誤不想再說它了。
3.命令模式
乒乓球可以看作命令模式的起源。直接給出的命令模式,可以死記硬背地理解,但是,為什么出現這么奇怪的想法,就有趣了。
即便yqj2065推演再三,感覺它類似中學幾何證明題中需要添加的某一根輔助線,要絞盡腦汁或靈機一動才能夠想到,但是還是不習慣。
推演并習慣之后,我會重新寫命令模式,感覺就是行云流水?一江春水向東流?
&@#¥,“Cmd模式是回調機制的一個面向對象的替代品”? 為什么不說Cmd模式是策略模式的簡單推廣?為什么不說Cmd模式是萬能適配器?
我將回調約等于觀察者,那么Commond=IClient=Observer?
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈