16得票1回答
继承中的建造者模式

我想将Web服务URL请求表示为一个对象,并发现有许多常见参数可以在继承层次结构中“上升”。 请求可能有许多参数,一些是必需的,其他是可选的。对此,我认为Bloch的Builder模式是一个不错的选择,它使用流畅接口来模拟命名参数。 具体而言,我正在设计适用于Google Maps Web服...

16得票3回答
生成器模式和模板方法的区别(生成器 vs 模板)

模板模式在基类中提供算法,其步骤可以在派生类中进行修改。 在生成器模式中,具体生成器公开了从Director类调用的构建产品的方法。 我知道使用这些模式的目的有所不同。模板模式是一种行为模式,它更改模板中的一个或多个步骤,而生成器模式是一种创建模式。 除了上述差异之外,还有其他差异吗? ...

16得票2回答
NonNull Lombok构建器属性的FindBugs检测程序

我有很多使用Lombok构建器的类,其中包含@NonNull字段。@Builder class SomeObject { @NonNull String mandatoryField1; @NonNull String mandatoryField2; Integer ...

15得票4回答
JavaWorld关于面向对象编程的讨论:获取器/设置器 vs 构建器

背景: 我在JavaWorld上找到了这篇文章,Allen Holub在其中解释了一种替代Getter / Setter的方法,该方法保持了对象实现应该被隐藏的原则(他的示例代码也可以在下面找到)。 据解释,类Name / EmployeeId / Money应该有一个接受单个字符串的构造...

15得票3回答
Java建造者模式和“深层”对象层次结构

什么是在“深层”对象层次结构中使用Builder模式的最佳实践?更具体地说,我探索了Joshua Bloch提出的Builder模式,并将其应用于我的XML绑定代码(我正在使用SimpleXML,但此问题适用于任何情况)。我的对象层次结构有4个层级,复杂程度各不相同。我的意思是,在某些层面上,...

15得票3回答
在Lombok中使用@Builder或@Getter注解设置默认字段值

我正在使用Lombok的@Builder注解,但我希望其中一些String字段是可选的,并默认为"",以避免空指针异常。有什么简单的方法可以做到这一点吗?我找不到任何相关信息。 或者,如果变量为null,一种自定义@Getter返回默认值的方法。

15得票7回答
Java API中的建造者模式示例?

《Effective Java》一书中介绍了建造者模式,可以用于构建具有多个可选自定义参数的对象。 他建议为建造者函数采用的命名约定“模拟了Ada和Python中发现的命名可选参数”,似乎不符合Java标准的命名约定。Java函数倾向于以动词开头,然后是一个以名词短语描述其作用的形式。而建造者...

15得票6回答
Setters和(不是OR或VS)构建器模式

我有一个情况,在其中使用了构建器模式来构建一个对象。最好的例子是给出披萨代码。public class Pizza { private int size; private boolean cheese; private boolean pepperoni; private bo...

15得票4回答
Java最佳实现Builder模式的方法

以下哪种方法是实现建造者模式的更好方法? 1) 使用对象来构建,而不是在建造者中使用所有属性(并在建造者构造函数中创建它):public class Person { private String firstName; // other properties ... ...

15得票5回答
建造者模式:确保对象完全构建

如果举个例子,我已经建立了一个构造器,这样我就可以像这样创建对象:Node node = NodeBuilder() .withName(someName) .withDescription(someDesc) .with...