【发布时间】:2013-06-14 10:02:44
【问题描述】:
复杂对象通常由 Builder 模式创建,其中 Builder 是专门用于通过多种方法创建单个对象的对象。例如。 (伪代码):
class PersonBuilder
PersonBuilder Named(string name)
this.name = name
return this
PersonBuilder Aged(int age)
this.age = age
return this
Person GetPerson()
return new Person(this.name, this.age)
这种具有流畅接口的有状态结构在构建器模式中很常见:
myPerson = builder.Named("John").Aged(20).GetPerson();
因此,创建一个可以从中创建构建器的PersonBuilderFactory 是否明智? 或者您应该只依赖PersonBuilder 并假设您的类将被注入一个新对象?后一种方法意味着当您创建 Person 后,您可能应该重置构建器。这里的最佳做法是什么,为什么?
【问题讨论】:
-
使您的构建器不可变,无需“重置”它们。
-
@BenJames 这可能是我见过的最好的答案..!如果您可以将其写为答案(并可能举例说明如何执行此操作),我很乐意接受它
标签: oop design-patterns