【发布时间】:2012-02-07 02:50:42
【问题描述】:
在使用 .NET Color 结构时,我发现自己想知道为什么微软选择为这个结构使用工厂方法模式(知道工厂方法模式主要用于子类化,而结构不能被子类化)。
我尝试了维基百科。它证实了我的想法,但实际上并没有给出答案:
虽然工厂方法模式背后的动机是允许 子类来选择创建哪种类型的对象,还有其他的 使用工厂方法的好处,其中许多不依赖于 子类化。因此,通常定义“工厂方法” 不是为了获得这些其他对象而创建对象的多态性 好处。此类方法通常是静态的。
那么,告诉我,工厂方法模式的这些其他好处是什么?
例如,我如何从调用Color myColor = Color.FromArgb(255,255,255) 而不是Color myColor = new Color(255,255,255) 中受益?
(请注意,第二种方法实际上是不可能的,因为 Point 结构没有参数化构造函数,因为它使用了工厂方法模式)
【问题讨论】:
标签: .net design-patterns factory-pattern