【问题标题】:Design Pattern(S) Command or Factory Which is Better to implement?设计模式(S)命令或工厂哪个更好实施?
【发布时间】:2011-07-23 08:48:12
【问题描述】:

我们也可以通过实现工厂模式和命令模式来解决一些设计问题。 那么,根据性能,哪个更好呢?

【问题讨论】:

  • 错误。您如何使用工厂模式或命令模式解决相同类型的问题?它们解决不同类型的问题:Factory 解决创造问题,Command 解决行为问题。
  • Jeff 是正确的......看看这本书“Head first design patterns”,作者很好地解释了这些模式

标签: design-patterns oop architectural-patterns


【解决方案1】:

我不确定如何通过工厂模式和命令模式解决一些问题。他们解决了完全不同类型的问题。

Abstract Factory 以这样一种方式处理对象的创建,即您可以轻松地在产品系列之间切换,并且可以强制对象的一致性(即不要意外混合不同的产品系列)。即使只有一个产品系列,它也会创建一个灵活的系统,其中创建的对象更易于管理。

工厂方法将对象的创建推迟到子类,因为基类不知道要实例化哪个具体类。这里基类知道何时创建对象,但不知道创建哪个具体对象。

Command 用于封装请求,以便您像处理其他对象一样处理请求,例如将请求作为参数传递给另一个方法/对象、队列请求、重用请求等。它不处理创建对象。

除非我非常非常错误,否则它们是针对不同问题的独立模式。您可以查看Design Patterns by GoFHead First Design Patters 了解有关这些模式的详细信息。

【讨论】:

  • 难道你不能有一个工厂来创建要被命令模式消化的命令吗?
【解决方案2】:

鉴于在某些情况下两者都适用——而且没有真正想到——我认为两者都不是“更好”;最佳解决方案取决于问题、整个系统、团队等。如果一个“更好”,那么另一个可以简单地丢弃!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多