广州有哪些建站公司,旅游电子商务网站规划书,有哪些网站可以免费做推广的,网站灰色代码命令模式是一种行为设计模式#xff0c;它将请求封装成一个独立的对象#xff0c;从而允许您以参数化的方式将客户端代码与具体实现解耦。在命令模式中#xff0c;命令对象充当调用者和接收者之间的中介。这使您能够根据需要将请求排队、记录请求日志、撤销操作等。
命令模…命令模式是一种行为设计模式它将请求封装成一个独立的对象从而允许您以参数化的方式将客户端代码与具体实现解耦。在命令模式中命令对象充当调用者和接收者之间的中介。这使您能够根据需要将请求排队、记录请求日志、撤销操作等。
命令模式的核心组成部分包括 命令接口Command Interface定义了执行操作的方法。 具体命令Concrete Command实现了命令接口并将具体的请求与实际的接收者相关联。 调用者Invoker接收客户端的请求并将其转发给具体命令对象。 接收者Receiver实际执行操作的对象。 命令模式的优点包括
解耦调用者和接收者调用者无需知道具体执行操作的细节只需通过命令对象调用相应的方法。容易扩展和维护可以方便地添加新的命令和接收者因为每个命令都是独立的对象。支持撤销和重做操作由于所有命令都被封装成对象可以轻松地实现撤销和重做功能。
然而命令模式也有一些限制和适用场景
增加了类的数量每个命令都需要一个具体的命令类这可能导致系统中类的数量增加。不适合复杂的命令操作如果命令需要多个步骤或复杂的逻辑可能需要使用其他模式来更好地处理。 public interface Order {void execute();
}public class SellStock implements Order {private Stock abcStock;public SellStock(Stock abcStock){this.abcStock abcStock;}Overridepublic void execute() {abcStock.sell();}
}public class Stock {private String name ABC;private int quantity 10;public void buy(){System.out.println(股票 [ 公司名: name,数量: quantity ] 买);}public void sell(){System.out.println(股票 [ 公司名: name,数量: quantity ] 卖);}
}
public class BuyStock implements Order {private Stock abcStock;public BuyStock(Stock abcStock){this.abcStock abcStock;}Overridepublic void execute() {abcStock.buy();}
}public class Broker {//组装命令private ListOrder orderList new ArrayListOrder(); //接收命令存到命令列表中public void takeOrder(Order order){orderList.add(order); }//循环命令列表逐个执行.public void placeOrders(){for (Order order : orderList) {order.execute();}orderList.clear();}
}public class CommandPatternDemo {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();}
}注意看得懂代码和写代码是两个概念写得出高质量代码和写的出代码又是两个概念!!!这话是说给自己本人的学习当永无止境从事IT行业者更是如此经验的积累并非一朝一夕就可以完成的而是需要不断的尝试从众多选择中获取最优的选择这个方才是我从事这份行业中最宝贵的收货初级-中级-高级是需要一段时间过度的路在脚下一个坑一个坑的踩着走不知道有无踩的终点但是在一路上将坑一个一个的填平即便是没有填平的坑下次遇到就小心一点就是了这方才是我们在这个行业最大的收货。