码迷,mamicode.com
首页 > 其他好文 > 详细

命令模式

时间:2018-08-14 14:51:05      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:nbsp   null   abstract   stat   命令模式   .com   分享图片   行操作   his   

命令模式把请求操作的对象和执行操作的对象解耦。

技术分享图片

代码如下:

先写命令真正的执行者

public class Receiver {
    public void extA()
    {
        System.out.println("Command excA!!");
    }
    public void extB()
    {
        System.out.println("Command excB!!");
    }
}

再写对命令的抽象

public abstract class Command {
    public Receiver rec=null;
    public void setRec(Receiver rec) 
    {
        this.rec=rec;
    }
    public abstract void exc();
}
public class CommandImpA extends Command {
    public void exc() {
        rec.extA();
    }
}
public class CommandImpB extends Command{
    public void exc() {
        rec.extB();
    }
}

然后是请求操作命令的类

public class Invoker {
    private ArrayList<Command> cmdList=new ArrayList<Command>();
    public void setCommand(Command cmd)
    {
        this.cmdList.add(cmd);
    }
    public void exc()
    {
        for(Command cmd:cmdList)
        {
            cmd.exc();
        }
    }
}

最后写一个测试

public static void main(String[] args) {
        Command cmdA=new CommandImpA();
        Command cmdB=new CommandImpB();
        cmdA.setRec(new Receiver());
        cmdB.setRec(new Receiver());
        Invoker ivk=new Invoker();
        ivk.setCommand(cmdA);
        ivk.setCommand(cmdB);
        ivk.setCommand(cmdB);
        ivk.setCommand(cmdA);
        ivk.setCommand(cmdA);
        ivk.setCommand(cmdA);
        ivk.exc();
    }

 

命令模式

标签:nbsp   null   abstract   stat   命令模式   .com   分享图片   行操作   his   

原文地址:https://www.cnblogs.com/blogofjzq/p/9473764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!