【问题标题】:.NET Factory Pattern [duplicate].NET 工厂模式 [重复]
【发布时间】:2011-08-26 14:01:35
【问题描述】:

可能重复:
Interface vs Abstract Class (general OO)

各位专家,

我正在阅读工厂模式

  1. 基于文章-http://aspalliance.com/809_Working_with_Factory_Design_Pattern_using_C

我们定义接口,接口由类实现。根据某些属性,我们决定实例化哪个类

  1. 看了另一篇文章—— http://csharpdesignpatterns.codeplex.com/wikipage?title=Factory%20Method%20Pattern&referringTitle=Home

我们定义抽象类并在子类中实现它。

列出的两个例子完全不同。基于我记得的基本面。

  • 我们何时使用接口 - 何时需要实现多态行为
  • 我们什么时候使用抽象类 - 提供默认的基本功能

帮助我了解如何将使用交互和使用抽象类称为工厂模式?

这两种方法有效吗?

对格式问题表示歉意。

提前致谢

【问题讨论】:

  • 在我看来,使用接口还是抽象类是一个实现细节,与 工厂模式 本身没有直接关系。它所做的只是指定另一个类(工厂)来为您创建对象,而不是您自己调用构造函数。这样,您可以集中任何所需的幕后魔术,例如确定要实例化的具体类型的各种因素,保持对象池以重用对象以防构造函数由于某种原因是重量级的,或者填充复杂的类构造合理的默认值。

标签: .net design-patterns factory


【解决方案1】:

由于模式是抽象概念,它们并不严格依赖于实现;所以使用接口或抽象类都是 imo 的有效方法。

Factory pattern 的主要思想是通过抽象来“简化”对象的创建。

您使用接口还是抽象类取决于您的实现。以我的经验,工厂模式通常在类结构已经定义时发挥作用。例如,我已经决定在我的模型中使用接口或抽象类,现在我想重构以便对象创建更简单 => 我选择工厂模式。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多