design-patterns - 生成器模式 : Do all builder return the same type ?

标签 design-patterns builder

在 Builder 模式中,所有具体的构建器是否都返回相同类型的对象(每个对象具有不同的属性),或者它们是否每个构建器都返回某个其他类的子类?

例如,在汽车制造商中,制造商是否都返回汽车对象
或者构建器会返回诸如“luxurycar”、“economyCar”、“sportsCar”之类的类型的对象,这些对象都继承自汽车?如果后一种情况是正确的,那么构建器如何向它创建的子类对象添加唯一属性?

最佳答案

如果您谈论的是《四人组》一书中的经典构建器模式,通常它会返回一个产品。没有理由不能构建不同的类型,但由于您将通过基类返回项目,因此必须在强制转换或实例之后访问特化。

如果您想简单地支持基于不同选项等构建不同类型汽车的想法,工厂方法可能是更好的匹配。

如果你正在做一个 Fluent Interface Builder,子类型将会是一个拖累,因为你正在链接调用。

一般来说,Builder 适用于构造涉及不同操作的情况。 Director 知道如何操纵 Builders 来构建产品。您可以让主任对不同类型有特殊的了解。整个想法是导演向产品的消费者掩盖了构造细节。

关于design-patterns - 生成器模式 : Do all builder return the same type ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19827541/

相关文章:

Java设计模式: event system,给定参与者的多个操作

JavaScript Object.prototype 访问私有(private)值

java - 覆盖 lombok 构建器并更改值类型

java - 我正在尝试理解建筑模式,但我与导演之间存在问题

methods - 有什么方法可以让构建器使用创建对象的方法注册回调?

ruby-on-rails - 在 Ruby 的构建器中自定义节点名称

java - 重构以公开用于单元测试的私有(private)方法

java - "toString"第三方对象的设计模式

python - django manager 代码应该在哪里?

java - 没有输入参数的构建器,具有静态构建方法?