首页 文章

继承使用静态内部类Builder构建的类

提问于
浏览
2

我有一个 Class A ,有很多成员变量 . 为了使它在构造期间不可变并验证成员变量,我将其构造函数设为私有,并使用内部公共静态构建器类( ClassABuilder )来构建它 . (Joshua Bloch Effective Java,第2项) .

现在我不明白的是,其他程序员将如何继承 Class A 以实现他们自己的特定行为 . 我从书中读到了Builder Pattern的缺点,但没有看到提到的子类化 . 我错过了什么吗?这周围有优雅的方式吗?

使构造函数 protected 是我的一个想法,但它仍然会采取公共静态 ClassABuilder ,那么如何在子类中添加新的成员变量?

2 回答

  • 0

    ClassB 中创建一个内部公共static ClassBBuilder builder,它是 ClassABuilder 的子类

  • 2

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

相关问题