2

我有一个Class A包含相当多的成员变量。为了使其不可变并在构造过程中验证成员变量,我将其构造函数设为私有并使用内部公共静态构建器类 ( ClassABuilder) 来构建它。(Joshua Bloch 有效的 Java,第 2 项)。

现在我不明白的是,其他程序员将如何子类Class A化以实现他们自己的特定行为。我从书中阅读了 Builder Pattern 的缺点,但没有看到子类化被提及。我错过了什么吗?有没有一种优雅的方式来解决这个问题?

制作构造函数protected是我的想法之一,但它仍然会采用 public static ClassABuilder,那么如何在子类中添加新的成员变量?

4

2 回答 2

2

创建一个内部公共静态ClassBBuilder构建器,ClassB它是ClassABuilder

于 2011-12-14T12:38:42.967 回答
0

为什么A使用构造函数Buildler作为参数。当用户调用Builder.create时,builder 必须初始化 的默认受保护构造函数A,然后简单地设置A的字段。B所以 B 你可以很容易地继承类A

于 2011-12-14T12:33:05.420 回答