乒乓球问题
来源:程序员人生 发布时间:2014-10-12 10:30:04 阅读次数:1915次
乒乓球问题,指方法的来回调用.
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?
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠