Java Command Pattern(命令行模式)
来源:互联网 发布:怎么在mac上做铃声 编辑:程序博客网 时间:2024/06/01 09:46
Java Command Pattern(命令行模式)
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
关键代码:定义三个角色:1、received 真正的命令执行对象 2、Command 3、invoker 使用命令对象的入口
优点: 1、降低了系统耦合度。 2、新的命令可以很容易添加到系统中去。
缺点:使用命令模式可能会导致某些系统有过多的具体命令类。
- 创建一个命令接口。
/** * 1. 创建一个命令接口。 * @author mazaiting */public interface Order { /** * 执行 */ void execute();}
- 创建一个请求类。
/** * 2. 创建一个请求类。 * @author mazaiting */public class Stock { private String name = "ABC"; private int quantity = 10; public void buy(){ System.out.println("Stock [ Name: "+name+", " + "Quantity: " + quantity +" ] bought"); } public void sell(){ System.out.println("Stock [ Name: "+name+", " + "Quantity: " + quantity +" ] sold"); } }
- 创建实现了 Order 接口的实体类。
/** * 3. 创建实现了 Order 接口的实体类。 * @author mazaiting */public class BuyStock implements Order{ private Stock abcStock; public BuyStock(Stock abcStock){ this.abcStock = abcStock; } public void execute() { abcStock.buy(); }}/** * 3. 创建实现了 Order 接口的实体类。 * @author mazaiting */public class SellStock implements Order{ private Stock abcStock; public SellStock(Stock abcStock){ this.abcStock = abcStock; } public void execute() { abcStock.sell(); }}
- 创建命令调用类。
/** * 4. 创建命令调用类。 * @author mazaiting */public class Broker { private List<Order> orderList = new ArrayList<Order>(); /** * 添加命令 */ public void takeOrder(Order order) { orderList.add(order); } /** * 执行并清空命令 */ public void placeOrders(){ for (Order order : orderList) { order.execute(); } orderList.clear(); }}
- 使用 Broker 类来接受并执行命令。
/** * 5. 使用 Broker 类来接受并执行命令。 * @author mazaiting */public class Client { public static void main(String[] args) { Stock abcStock = new Stock(); BuyStock buyStockOrder = new BuyStock(abcStock); SellStock sellStockOrder = new SellStock(abcStock); Broker broker = new Broker(); broker.takeOrder(buyStockOrder); broker.takeOrder(sellStockOrder); broker.placeOrders(); }}
- 打印结果
Stock [ Name: ABC, Quantity: 10 ] boughtStock [ Name: ABC, Quantity: 10 ] sold
阅读全文
0 0
- Java Command Pattern(命令行模式)
- 浅谈 java 设计模式--命令行模式(Command pattern)
- Java与模式 命令模式 Command Pattern
- Java设计模式--命令模式【Command Pattern】
- Java设计模式 Design Pattern:命令模式 Command Pattern
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- Java之命令模式(Command Pattern)
- 命令模式(Command Pattern)
- 命令模式(Command Pattern)
- Command Pattern(命令模式)
- 命令模式 Command Pattern
- Java Decorator Pattern(装饰器模式)
- Java Facade Pattern(外观模式)
- Java Flyweight Pattern(享元模式)
- Java Proxy Pattern(代理模式)
- Java Chain of Responsibility Pattern(责任链模式)
- Java Command Pattern(命令行模式)
- Java Interpreter Pattern(解释器模式)
- Java Iterator Pattern(迭代器模式)
- Java Mediator Pattern(中介者模式)
- Redis基本的数据类型和常用命令
- Java Memento Pattern(备忘录模式)
- Java Observer Pattern(观察者模式)
- Java State Pattern(状态模式)
- Java Null Object Pattern(空对象模式)