gpt4 book ai didi

java - 客户端在命令模式中做什么?

转载 作者:行者123 更新时间:2023-12-01 21:28:15 25 4
gpt4 key购买 nike

enter image description here我正在阅读《headfirst 设计模式》一书。我观察到客户端的显示类似于酒店客户,他创建了一个 order(command) 对象,waitress(invoker) 选择它并调用它的 execute () 方法,该方法依次调用厨师的 cook() 方法(chef=receiver)在命令模式类图中,我可以看到客户端与 Receiver 以及 ConcreteCommand 类关联。我无法获得这个例子,因为在现实世界中,顾客不应该了解厨师并为他设置说明。另一个问题是,在命令模式类图中,我观察到 Client 未显示与 Invoker 关联,但在随附的 java 程序中,我可以在 Client 类中看到 Invoker 引用。对客户端模块在命令模式中的作用完全感到困惑。清除其余4个模块。

最佳答案

阅读此内容:http://www.oodesign.com/command-pattern.html

Client creates a ConcreteCommand object and sets its receiver [...] The Client asks for a command to be executed.

它甚至有示例代码来显示客户端的操作:

The client creates some orders for buying and selling stocks (ConcreteCommands). Then the orders are sent to the agent (Invoker). [...]

public class Client {
public static void main(String[] args) {
StockTrade stock = new StockTrade();
BuyStockOrder bsc = new BuyStockOrder (stock);
SellStockOrder ssc = new SellStockOrder (stock);
Agent agent = new Agent();

agent.placeOrder(bsc); // Buy Shares
agent.placeOrder(ssc); // Sell Shares
}
}

picture

关于java - 客户端在命令模式中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37773648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com