过度使用工厂模式

时间:2012-03-04 07:46:13

标签: design-patterns factory

我应该在哪里不使用工厂模式,因为我周围的每个人都告诉我不要实例化具体对象。在测试时,工厂不容易处理,我不想为我创建的每个可能的对象创建工厂。 在所有这些混乱的顶部,为什么我需要单独工厂?

2 个答案:

答案 0 :(得分:1)

您应该针对接口进行编程,使用工厂模式可以解决所有问题。

单身可能很有用,但仅在需要/需要时再次使用。

最重要的是不要使用你不理解的东西或者没有看到它的重点,值得阅读Martin Fowlers的书,然后再考虑一下,你可能会认为中间路径适合你。

在编程中没有对错取决于很多因素。即使使用界面处理所有事情也可能是一种痛苦,但它总是为我付出代价。

答案 1 :(得分:0)

接口类型是协议的规范,可能由许多对象类型支持。尽可能使用base classes代替接口。从版本控制的角度来看,类比接口更灵活。使用类,您可以发布版本1.0,然后在版本2.0中向类添加新方法。只要该方法不是抽象的,任何现有的派生类都将继续保持不变。

例如,为数据适配器提供接口很困难,并没有真正的好处。开发人员仍然必须专门针对每个适配器进行编程,因此提供接口只会带来微不足道的好处。但是,您需要支持所有适配器之间的一致性。虽然在这种情况下接口或抽象类不合适,但提供一致的模式非常重要。您可以为基类中的开发人员提供一致的模式。请遵循以下准则来创建基类。

接口适用于以下情况:

  • 有几个不相关的类希望支持该协议。

  • 这些类已经建立了基类(例如,一些是用户界面(UI)控件,一些是XML Web服务)。

  • 汇总不合适或不实用。

在所有其他情况下,类继承是更好的模型。