19.命令模式

命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

import java.util.ArrayList;

import java.util.List;

 

/**

* 命令模式:

* 关键:

* 命令Command接口,定义执行方法

* 具体命令Command类,实现接口,并接收Executor,去执行定义方法

* 执行者Executor执行各种命令,具体执行什么命令看情况

* 接受者Receiver接收命令,并执行方法

* @author zbl

*

*/

public class CommandCustomer {

public static void main(String[] args) {

Receiver receiver = new Receiver();//接受者 服务员

Executor executor = new Executor();//执行者 大厨

Command command1 = new ConcreteCommand(executor);//命令之一

receiver.setCommand(command1);//记录给执行者的命令 客户下单

receiver.myNotify();//接受者执行通知

}

}

//命令接口

interface Command{

public void execute();

}

//具体命令

class ConcreteCommand implements Command{

private Executor excutor;

public ConcreteCommand(Executor excutor) {

super();

this.excutor = excutor;

}

@Override

public void execute() {

excutor.execute1();

}

}

//执行者

class Executor{

public void execute1(){

System.out.println("xii");

}

public void execute2(){

System.out.println("uwuw");

}

}

//接受者

class Receiver{

private List<Command> list = new ArrayList<Command>();

public void setCommand(Command command){

list.add(command);

}

public void removeCommand(Command command){

list.remove(command);

}

public void myNotify(){

for(Command command : list){

command.execute();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值