3 回答

TA贡献1808条经验 获得超4个赞
构建器模式可用于:
对用于初始化对象的数据进行一些检查。例如,如果您需要在变量之间进行双重检查
创建不可变对象。一旦初始化就不能更改对象,因此不能使用 setter
添加代码的可读性。
减少用于初始化对象的代码
使实例处于有效状态。在调用所有 setter 之前,使用 setter 对象实例可能处于无效状态。
注意使用构建器创建不可变对象。
当您在多线程环境中工作时,可以在线程之间共享不可变对象,而无需显式同步。因为对象在这段时间内不能改变,所以不可能有竞争条件同时被两个线程访问和修改。

TA贡献1995条经验 获得超2个赞
无需使用任何模式。您甚至可以通过公开变量来避免设置器。然而,
Builder 设计模式的目的是将复杂对象的构造与其表示分离
来源:https ://en.wikipedia.org/wiki/Builder_pattern

TA贡献1783条经验 获得超4个赞
使用构建器模式有几个优点:
与设置器(使您的类可变)不同,构建器可用于构造不可变对象。在许多情况下,不可变对象比可变对象更受欢迎,因为它们更易于理解和维护,并且它们避免了在多线程环境中锁定的需要。
构建器可以确保对象即使在构建后直接满足某些不变量。例如,如果您的类有一个
name
字段不能是null
,则构建器可以检查此条件并在不满足时无法构造对象。
您也可以通过使用将所有类内容作为参数的构造函数来完成这两件事,但是当您的类有多个要初始化的字段时,这将是非常不可读的。
添加回答
举报