【发布时间】:2010-12-06 07:52:13
【问题描述】:
有人能指出在哪里可以找到带有 onComplete 回调的命令模式的实现,例如可以在串行宏命令中使用吗?
【问题讨论】:
-
GoF 命令模式不包括回调。请添加更多信息或显示您真正想到的模式的 url 引用。
标签: java design-patterns callback command
有人能指出在哪里可以找到带有 onComplete 回调的命令模式的实现,例如可以在串行宏命令中使用吗?
【问题讨论】:
标签: java design-patterns callback command
试试这个
abstract class Command {
final public void execute(){
run();
onComplete();
}
protected abstract void run();
protected abstract void onComplete();
}
//usage
abstract class HiCommand extends Command {
protected void run(){
System.out.println("Hi, ");
}
protected abstract void onComplete();
}
new HiCommand(){
@Override
protected void onComplete() {
System.out.println("world");
}
}.execute();
或者这个
interface WhenDone{
void onComplete();
}
abstract class Command {
private final WhenDone callback;
protected Command(WhenDone callback){
this.callback = callback;
}
final public void execute(){
run();
callback.onComplete();
}
protected abstract void run();
}
//usage
class PrintHi extends Command {
protected PrintHi(WhenDone callback){
super(callback);
}
protected void run(){
System.out.println("Hi, ");
}
}
class PrintWorld implements WhenDone {
public void onComplete(){
System.out.println("world!");
}
}
//somewhere
new PrintHi(new PrintWorld()).execute();
使用示例并非来自现实生活。可能,您应该通过创建 CommandManager 将创建和调用执行分开。
【讨论】: