我有一个Class A
,其中有很多成员变量。为了使它在构造期间不可变并验证成员变量,我将其构造函数设为私有,并使用内部公共静态构建器类(ClassABuilder
)来构建它。 (Joshua Bloch Effective Java,第2项)。
现在我不明白的是,其他程序员如何将Class A
子类化以实现他们自己的特定行为。我从书中读到了Builder Pattern的缺点,但没有看到提到的子类化。我错过了什么吗?这周围有优雅的方式吗?
构造函数protected
是我的一个想法,但它仍然会采用公共静态ClassABuilder
,那么如何在子类中添加新的成员变量?
答案 0 :(得分:2)
在ClassBBuilder
中创建内部公共静态ClassB
构建器,该构建器是ClassABuilder
答案 1 :(得分:0)
为什么A
的构造函数使用Buildler
作为参数。当用户调用Builder.create
时,构建器必须初始化A
的默认受保护构造函数,然后只需设置A
的字段。因此,您可以轻松地从B
A