设计模式之命令模式


命令模式

说明:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。

 

UML图如下所示:

 

代码如下所示:

 



package com.dai.command;
 
/**
 *
 * @author 戴礼明
 *日期: 2016-6-4
 *content: 命令操作接口
 */

public interface CommandOperat {
   
    public void operation(Computer computer);
  }

package com.dai.command;
 
/**
 *
 * @author 戴礼明
 *日期: 2016-6-4
 *content:打印命令
 */

public class CommandPrint  implements CommandOperat{

 
    public void operation(Computer computer) {
        computer.print();
    }
       }

package com.dai.command;

 /**
 *
 * @author 戴礼明
 *日期: 2016-6-4
 *content:关闭电脑命令
 */ 

public class CommandTurnOff  implements CommandOperat{

    public void operation(Computer computer) {
        computer.turnOn();
    }
    }

package com.dai.command;

/**
 *
 * @author 戴礼明
 *日期: 2016-6-4
 *content:开启电脑命令
 */


public class CommandTurnOn  implements CommandOperat{

     public void operation(Computer computer) {
        computer.turnOn();
    } 
}

package com.dai.command;


public class Computer {

     public void turnOn(){
       System.out.println("我正在打开中.....");
    }

       public void turnOff(){
       System.out.println("我正在关闭中.....");
    }

     public void print(){
       System.out.println("我正在打印中......");
    }
}

package com.dai.command;

 /**
 *
 * @author 戴礼明
 *日期: 2016-6-4
 *content:控制器
 */

public class Controller {

     private CommandOperat turnOn,turnOff,print;
    private Computer computer;
       public Controller() {

         }   

    public Controller(CommandOperat turnOn, CommandOperat turnOff,

           CommandOperat print) {
       super();
       this.turnOn = turnOn;
       this.turnOff = turnOff;
       this.print = print;
       this.computer=new Computer();
    }

    public void turnOn(){
       turnOn.operation(computer);
    }
  
    public void turnOff(){
       turnOff.operation(computer);
    }
    public void print(){
       print.operation(computer);
    }
}

package com.dai.command;

/**
* @author 戴礼明
  *日期: 2016-6-4
 *content:用户测试类
 */

public class People {


    public static void main(String[] args) {

     CommandOperat turnOn=new CommandTurnOn();          CommandOperat turnOff=new CommandTurnOff();
     CommandOperat print=new CommandPrint();

     Controller controller=new Controller(turnOn, turnOff, print);
     controller.turnOn();
     controller.turnOff();
     controller.print();
    }  
}

 

 

 

 





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值