825得票27回答
建造者设计模式和工厂设计模式有什么区别?

生成器模式和工厂模式有什么区别? 哪一个更有优势,为什么? 如果我想测试和比较这些模式,如何将我的发现表示成图形?

140得票12回答
《Effective Java》中的建造者模式

我最近开始阅读 Joshua Bloch 的《Effective Java》一书。我觉得其中的建造者模式 [第2条] 很有趣。我试图在我的项目中实现它,但出现了编译错误。以下是我尝试做的事情: 具有多个属性和其构建器类的类:public class NutritionalFacts { ...

89得票12回答
IntelliJ中的生成器模式代码生成

有没有办法在IntelliJ中自动化编写生成器模式(Builder patterns)的代码? 例如,给定这个简单的类:class Film { private String title; private int length; public void setTitle(...

87得票7回答
Python 中的建造者模式等价物

在Java中,您可以使用构建器模式(builder pattern)以更可读的方式实例化具有许多参数的类。在构建器模式中,需要构建一个配置对象,其中包含用于设置命名属性的方法,然后使用该对象来构建另一个对象。 在Python中,相应的模式是什么?是否最好模仿同样的实现方式?

48得票10回答
如何改进建造者模式?

动机 最近我正在寻找一种初始化复杂对象的方式,而不需要在构造函数中传递大量参数。我尝试使用构建器模式,但我不喜欢这样做的事实是我无法在编译时检查是否真正设置了所有必需的值。 传统的构建器模式 当我使用构建器模式来创建我的Complex对象时,创建过程更加“类型安全”,因为更容易看到参数的...

35得票9回答
建造者模式 vs 配置对象

建造者模式常用于创建不可变对象,但创建一个建造者需要一些编程开销。所以我想知道为什么不直接使用配置对象。使用建造者的示例代码如下:Product p = Product.Builder.name("Vodka").alcohol(0.38).size(0.7).price(17.99).bui...

23得票10回答
在哪些情况下应该使用建造者模式而不是抽象工厂模式?

我在这里和那里看到过这个问题多次提出,但我从未找到一个让我满意的答案。 根据维基百科: Builder注重逐步构建复杂对象。抽象工厂强调一族产品对象(简单或复杂)。Builder将产品作为最终步骤返回,但就抽象工厂而言,产品立即被返回。 但对于客户端来说,这不是同样的吗?他在构建...

17得票1回答
嵌套对象的构建器模式

嗨,我遇到了一个问题。 我想使用建造者模式来使创建我的对象更容易。我面临的问题与嵌套对象有关。我想要创建的对象中有另外一些对象的列表,但是我不知道该如何解决。 我希望能够像下面这样做(以较简单的对象为例):Receipt RestaurantReceipt = new ReceiptBui...

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

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

14得票7回答
如何确保建造者模式的完成?

编辑:我不担心被错误地调用,因为这是通过使用多个接口来强制执行的,我只是担心终端方法是否被调用。 我正在使用构建器模式来创建系统中的权限。我选择了构建器模式,因为我们的产品安全性非常重要(它涉及未成年人,所以COPPA等法规),我认为权限可读是至关重要的,并且觉得可读性非常重要(即使用流...