我们也可以通过实现工厂模式和命令模式来解决一些设计问题。那么,根据性能,哪个更好呢?
问问题
2245 次
2 回答
3
我不确定如何通过工厂模式和命令模式解决一些问题。他们解决了完全不同类型的问题。
抽象工厂以这样一种方式处理对象的创建,即您可以轻松地在产品系列之间切换,并且您可以强制对象的一致性(即不要意外混合不同的产品系列)。即使只有一个产品系列,它也会创建一个灵活的系统,其中创建的对象更易于管理。
工厂方法将对象的创建推迟到子类,因为基类不知道要实例化哪个具体类。这里基类知道何时创建对象,但不知道创建哪个具体对象。
Command 用于封装请求,以便您像处理其他对象一样处理请求,例如将请求作为参数传递给另一个方法/对象、队列请求、重用请求等。它不处理对象的创建.
除非我非常非常错误,否则它们是针对不同问题的不同模式。您可以查看GoF 的设计模式和Head First Design Patterns 以了解有关这些模式的详细信息。
于 2011-03-26T06:28:03.310 回答
1
鉴于在某些情况下两者都适用——而且没有真正想到——我认为两者都不是“更好”;最好的解决方案取决于问题、整个系统、团队等。如果一个“更好”,那么另一个可以简单地丢弃!
于 2011-03-26T05:27:47.417 回答