私はClass A
かなりの数のメンバー変数を持っています。これを不変にし、構築中にメンバー変数を検証するために、コンストラクターをプライベートにし、内部の public static ビルダー クラス ( ClassABuilder
) を使用して構築しました。(Joshua Bloch 有効な Java、項目 2)。
今私が理解していないのは、他のプログラマーがどのようにサブクラス化Class A
して独自の動作を実装するかということです。本から Builder パターンの欠点を読みましたが、サブクラス化が 1 つとして言及されているのを見ませんでした。何か不足していますか?これを回避するエレガントな方法はありますか?
コンストラクターを作成することprotected
は私の考えの 1 つでしたが、それでも public staticClassABuilder
を使用するので、サブクラスに新しいメンバー変数を追加するにはどうすればよいでしょうか?