为什么客户端在引用接收者和具体命令时没有引用调用者?
public static void main(String[] args)
{
StockTrade stock = new StockTrade();
BuyStockOrder bsc = new BuyStockOrder (stock);
SellStockOrder ssc = new SellStockOrder (stock);
Agent agent = new Agent(); //<-- The invoker is right there yet it is not
// in the diagram?
agent.placeOrder(bsc);
agent.placeOrder(ssc);
}
答案 0 :(得分:2)
wiki文章解释为:
客户端实例化该命令 对象并提供信息 需要稍后调用 方法 时间。调用者决定什么时候 方法应该被调用。 接收器 是类的一个实例 包含方法的代码。
答案 1 :(得分:1)
如果我理解你的问题是正确的,答案是这样的。
该图表中有一个可以从客户端跟踪到Invoker的引用。如果你看,你可以看到从Client到ConcreteCommand的虚线叫做“instantiate”,然后是ConcreteCommand到Command的一行,然后是从Command到Invoker的一行。
据我所知 - 这条虚线表示创建对象供以后使用(从代码中可以看出 - 它们是在main中创建的。)