【问题标题】:Java: Simple implementation of Command pattern with onComplete callback?Java:带有 onComplete 回调的命令模式的简单实现?
【发布时间】:2010-12-06 07:52:13
【问题描述】:

有人能指出在哪里可以找到带有 onComplete 回调的命令模式的实现,例如可以在串行宏命令中使用吗?

【问题讨论】:

  • GoF 命令模式不包括回调。请添加更多信息或显示您真正想到的模式的 url 引用。

标签: java design-patterns callback command


【解决方案1】:

试试这个

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 将创建和调用执行分开。

【讨论】:

  • 谢谢你,斯塔斯!嗯......现在我必须弄清楚父回调命令的样子......!我不会否认你对此的意见。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 2013-11-17
  • 1970-01-01
相关资源
最近更新 更多