做网站的域名是做什么用的,济南seo网站排名优化工具,做wordpress,旅游网站设计方案命令模式是一种行为设计模式。可以用来实现比如安装软件时的安装向导功能#xff0c;通常安装向导会通过多个步骤根据用户的选择了解用户的偏好。安装向导首先启动一个名为 Command 的对象#xff0c;用于存储在向导的多个步骤中用户指定的选项。当用户在最后一个步骤中点击完…命令模式是一种行为设计模式。可以用来实现比如安装软件时的安装向导功能通常安装向导会通过多个步骤根据用户的选择了解用户的偏好。安装向导首先启动一个名为 Command 的对象用于存储在向导的多个步骤中用户指定的选项。当用户在最后一个步骤中点击完成按钮时Command 对象就会运行 execute() 方法该方法会考察所有存储的选项并完成相应的安装过程。UML命令模式通常包含以下术语Command 对象了解 Receiver 对象的情况并能调用其方法调用者(Invoker)方法的参数值存储在 Command 对象中调用者知道如何执行命令客户端(Client)用来创建 Command 对象并设置其接收者命令模式的主要意图将请求封装为对象可用不同的请求对客户端进行参数化允许将请求保存在队列中提供面向对象的回调命令模式的适用场景根据需要执行的操作对对象进行参数化将操作添加到队列并在不同地点执行请求创建一个结构根据较小的操作来完成高级操作代码示例from abc import ABCMeta, abstractmethodclass Order(metaclassABCMeta):abstractmethoddef execute(self):passclass BuyStockOrder(Order):def __init__(self, stock):self.stock stockdef execute(self):self.stock.buy()class SellStockOrder(Order):def __init__(self, stock):self.stock stockdef execute(self):self.stock.sell()class Agent:def __init__(self):self.__orderQueue []def placeOrder(self, order):self.__orderQueue.append(order)order.execute()class StockTrade:def buy(self):print(You will buy stocks)def sell(self):print(You will sell stocks)if __name__ __main__:stock StockTrade()buyStock BuyStockOrder(stock)sellStock SellStockOrder(stock)agent Agent()agent.placeOrder(buyStock)agent.placeOrder(sellStock)# You will buy stocks# You will sell stocksOrder 类 - Command 对象BuyStockOrder 和 SellStockOrder 类 - ConcreteCommand 对象为交易系统定义适当的操作StockTrade 类 - Receiver 对象定义了多个方法(动作)可以被 ConcreteCommand 调用以买入或卖出股票Agent 类 - Invoker 对象作为客户端和 StockTrade 的中介执行客户下达的订单命令模式的优点将调用操作的类与知道如何执行该操作的类解耦借助队列系统可以创建一系列命令添加新命令更加容易无需更改现有代码可以使用命令模式定义回滚系统命令模式的缺点为了实现目标需要大量的类和对象进行协作每个单独的命令都是一个 ConcreteCommand 类增加了实现和维护的成本