C# 工厂设计模式

3
在C#中,为什么所有的“工厂类”都应该继承“抽象工厂类”?即使不继承,我们也能实现相同的功能。难道不行吗?

1
可能是 https://dev59.com/x3NA5IYBdhLWcg3wVcT6 的重复问题。 - Mohnkuchenzentrale
你需要比较抽象工厂模式http://www.dofactory.com/Patterns/PatternAbstract.aspx和工厂模式http://www.dofactory.com/Patterns/PatternFactory.aspx,看哪个更适合您的需要。 - Mihai
感谢Kroax,我会检查那个链接。谢谢Mihai,我会检查那些链接。如果可以的话,请大家检查一下我的回复下面的答案,并确认我对抽象工厂模式的理解是正确的,然后我将非常感激。谢谢大家! - Zodiac
如果您想在运行时交换一种工厂类型以便于另一种,那么给它们一个共同的基类会使这个过程变得非常容易。 - Mike
1个回答

4
工厂继承自抽象工厂类是为了遵循抽象工厂模式。当您想要创建一个策略来处理整个对象类型组时,抽象工厂模式非常有用。因此,它也被称为“kit”模式。
通常,工厂在没有抽象的情况下完全可行。如果现在不需要,请不要使用它。如果需要,稍后可以制作抽象工厂。
更多阅读:

http://en.wikipedia.org/wiki/Abstract_factory_pattern


Tallseth - 感谢您的回复。如果我有一个抽象类,其中一个抽象方法的返回类型是接口,请纠正我,现在我继承这个抽象类并为抽象方法提供实现,通过返回一个继承返回类型接口的某个类的新实例。然后在我的客户端代码中创建抽象类对象并调用该方法。这是“工厂设计模式”吗? - Zodiac
那听起来像是抽象工厂模式。但是比起知道是什么模式,更重要的是知道它能解决你的问题。 :) - tallseth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接