浏览 413 次
|
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-21
网上一段关于java回调机制的浅析:
该文章转载自网络大本营:http://www.xrss.cn/Dev/JAVA/20072810170.Html
public class Test{
public static void main(String[] args){
FooBar foo=new FooBar();
foo.setCallBack(
new ICallBack(){
public void postExec(){System.out.println("method executed.");}
}
);
}
}
public interface ICallBack(){
void postExec();
}
public class FooBar{
private ICallBack callBack;
public void setCallBack(ICallBack callBack){
this.callBack=callBack;
}
public void doSth(){
....
callBack.postExec();
}
..
}
感觉和Strategy(策略)模式基本一个样,请指教二者是否就没什么太大区别? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-05-21
我理解的策略模式就是将经常变动的算法拿出来让用户自己实现,而框架则负责那些不变的部分
那么回调应该属于实现策略模式的一种手段 当然还有其他的方式也可以实现策略模式 |
|
| 返回顶楼 | |
|
时间:2008-05-21
java中的回调实现真的很烦,
要是能传function就好了。 |
|
| 返回顶楼 | |
|
时间:2008-05-21
难道不像Command 命令模式?
|
|
| 返回顶楼 | |
|
时间:2008-05-21
icefire 写道 java中的回调实现真的很烦,
要是能传function就好了。 Java7加入闭包后应该就好了 |
|
| 返回顶楼 | |
|
时间:2008-05-21
Eastsun 写道 icefire 写道 java中的回调实现真的很烦,
要是能传function就好了。 Java7加入闭包后应该就好了 闭包对性能影响的大不大的? |
|
| 返回顶楼 | |
|
时间:2008-05-21
回调对应的应该是Observer模式,也即java的事件机制。就是说提供一个事件接口,等事件发生时调用你注册的监听对象(实现这个事件接口),此谓回调。
|
|
| 返回顶楼 | |
|
时间:2008-05-22
被评为新手帖,晕,新手不是这样判断地。
java中的回调实现我觉得不算烦,挺自然。我觉得不必过于追求某些教条。相比于不考虑架构和模式我更反感过度设计言毕模式,因为前者有可能是有潜力的“新手”,而后者肯定是没前途的老人。 这么看所谓回调也就差不多是策略模式了,但是我不认为他算是Observer模式,虽然直观上看可以这么说但是两种模式的侧重点明显不一样,所谓模式本来就大同小异,区别不同模式的依据就是其侧重点,也就是应用的场景、关注点、想解决什么...照楼上的看法那么连visitor访问者模式也应该算是回调的了,而实际上是访问者模式运用了回调手法而已。 Observer观察者模式和java的事件机制EventListener也是不一样的啊,api里就是分开的,观察者模式里没有事件这个角色。 也有点像commend... 其实23模式除了创建的工厂和单件、用于集合的组合和访问者、被整合进Java API的观察者和iterator,其他的我觉得都差不多:) |
|
| 返回顶楼 | |











