是数据驱动的设计模式,属于行为模式
/*
股票类:模拟了一个交易员
*/
public class Stock {
private String name;
private int quantity;
public Stock(String name, int quantity) {
this.name = name;
this.quantity = quantity;
}
public void sell(){
System.out.println("股票出售"+name+",股数"+quantity);
}
public void buy(){
System.out.println("股票购买"+name+",股数"+quantity);
}
}
public interface Order {
void execute();
}
/*
此类表示股票出售
*/
public class SellStock implements Order{
private Stock stock;
public SellStock(Stock stock) {
this.stock = stock;
}
@Override
public void execute() {
stock.sell();
}
}
/*
购买对应的股票
*/
public class BuyStock implements Order{
//依赖于stock对象
private Stock stock;
public BuyStock(Stock stock) {
this.stock = stock;
}
@Override
public void execute() {//由此方法完成
//真正执行购买目标股票的业务操作
stock.buy();
}
}
import java.util.ArrayList;
import java.util.List;
/*
此类表示股票经纪人类
*/
public class Broker {
private List<Order> orderlists=new ArrayList<>();
//1.接受订单(订单保存到当前集合中
public void takeOrder(Order order){
orderlists.add(order);
}
//2.下订单(购买、出售)
public void placeOrders(){
for(Order order:orderlists){
order.execute();//执行订单操作(下订单、出售订单)
}
}
}
public class CommandPatternDemo {
public static void main(String[] args) {
Stock stock=new Stock("002607",100);
BuyStock buyStock =new BuyStock(stock);
Broker broker=new Broker();
broker.takeOrder(buyStock);
//执行了订单的交易动作
broker.placeOrders();
}
}