【问题标题】:Is this a strategy pattern or command pattern?这是策略模式还是命令模式?
【发布时间】:2014-03-20 15:35:33
【问题描述】:

我正在为一个大学项目开发​​一个计算器应用程序。我已经将每个计算器操作(例如加法、乘法、平方等)封装在单独的类中,这些类都有一个共同的超类。这是命令模式还是策略模式的示例,它们似乎非常相似,我在这里无法决定。

谢谢。

【问题讨论】:

标签: design-patterns


【解决方案1】:

两者兼而有之。许多模式重叠。您的计算器程序使用策略模式来支持多个操作,并可能允许稍后添加或动态添加新操作。

每个操作策略都以符合命令模式的方式调用。

【讨论】:

  • 策略肯定是因为每个子类的操作不同。但是,除非操作的每个实例都是唯一的,即 1+3*4/5+2 将是 4 个对象,否则它可能不是命令。
  • 会有某种复合命令用于计算由许多子操作命令组成的整个方程。
【解决方案2】:

策略模式用于您需要决定使用哪种算法的地方 例如您希望如何添加不同类型的数字

在您拨打电话时将使用命令模式 例如是否要调用具有不同 Add 策略的 Add 类或其他方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-27
    • 2012-05-31
    • 1970-01-01
    • 2012-02-17
    • 2014-08-20
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多