【发布时间】:2010-12-03 04:57:36
【问题描述】:
我在这个博客中遇到了一种非常不寻常的方式来构建一个类的对象: http://marchwicki.pl/blog/2010/11/building-a-pojo-in-an-elegant-way/。这是一个很好的方法来做到这一点。有什么好处?
【问题讨论】:
-
谁能解释为什么要打扰内部类?为什么不直接从每个 setter 中返回对象?
-
@box9 - 内部类是构建器设计模式的构建器,所以您的问题本质上是“为什么要使用构建器设计模式”。请参阅下面有关构建器设计模式的答案以及有关构建器设计模式的其他 SO 问题的答案,例如 stackoverflow.com/questions/328496/…。
-
@Bert F - 我从那个 SO 问题中得到的是 Builder 模式允许将 setter 方法链接起来,这是我理解的。但这仍然不能解释为什么构建器模式比从每个设置器返回对象更好,因为这将还允许设置器的链接。我错过了 Builder 模式的好处吗?
-
@box9 - 我觉得你真的在问“为什么不使用简单的构造函数和 setter 方法来初始化一个对象?(又名 JavaBean 初始化风格)。不管你是否返回来自setter的实例,因此您可以链接setter - 链接只会影响代码的可读性。这个答案解释了为什么有些人更喜欢构建器模式而不是JavaBean风格的init:stackoverflow.com/questions/328496/…。如果仍然不清楚,我认为这会很好所以问题要问并获得一些关于它的其他观点。
标签: java design-patterns object constructor