2

GoF 书中指出,构建器模式中的产品类不一定需要从基类继承。具体的构建器类可能会产生完全不同的产品,它们共享相同的抽象构建步骤。

使用构建器模式的客户端需要实例化具体的构建器类并将对象与 Director 对象相关联。导演将使用构建器来构建对象并最终返回完整的对象。

我的问题是,如果产品类不共享相同的基类,导演将如何设计?在 C# 中,这可以通过使用泛型轻松实现,但设计模式不依赖于语言特性。为每种类型的具体产品定义单独的方法似乎不是一个好主意,因为它会将主管与产品类紧密耦合,并且任何新产品类都需要更改主管类。

请让我知道你的想法。

4

1 回答 1

2

该模式不关心产品的性质,因此如果您有生成不同类型产品的构建器,您当然可以只返回 Object。结果不再是静态类型的,但这现在是消费者的问题,因为他们要求主管使用可以生产任意产品的构建器。

于 2012-10-09T18:22:37.000 回答