【发布时间】:2009-12-08 20:10:20
【问题描述】:
下面是一篇关于 .net 框架使用模式的文章。我不确定我是否理解下面摘录中的粗体部分。是否暗示如果您更改创建对象的细节,您(可能)会更改构造函数参数?
在框架中有很多情况下,您 可以获得结构或类的新实例 无需自己调用其构造函数。这 System.Convert 类包含大量静态 像这样工作的方法。转换整数 一个布尔值,例如,你可以调用 Convert.ToBoolean 并传入整数。这 此方法调用的返回值是一个新的布尔值 如果整数非零,则设置为“true”并且 否则为“假”。 Convert 类创建 具有正确值的布尔值。其他类型 转换方法的工作方式类似。解析 Int32 和 Double 上的方法返回新实例 这些对象设置为适当的值 只给出一个字符串。
这种创建新对象实例的策略是 称为工厂模式。而不是调用 对象的构造函数,可以问对象 工厂为您创建实例。那样, 工厂类可以隐藏复杂性 对象创建(例如如何解析 Double 出 一个字符串)。如果您想更改详细信息 创建对象,您只需要更改 工厂本身; 您不必更改每个 构造函数所在的代码中的单个位置 调用。
【问题讨论】:
-
好问题——工厂的替代品难道不是新的构造函数吗? (与在整个代码库中重复解析代码相反。)构造函数还可以“隐藏对象创建的复杂性(例如如何从字符串中解析出 Double)。”
标签: .net design-patterns factory-pattern