私は不変性の概念が好きです。また、null を使用しないというコンセプトも気に入っています (可能であれば、NullDesignPattern も NullObjects も可能な限り使用しません)。
しかし、次のシナリオはどうでしょうか。
私は 2 つのフィールドを持つ object を持っていUserます: birthdayand dateInLifeMarried(同様のフィールドである可能性があります。重要なことは、最初はこのフィールドがnulland であり、オブジェクトの寿命のある時点で変化することです)。
不変であるため、両方のフィールドをコンストラクターに含める必要があります。
public User(birthday, dateInLifeMarried)
今:
null2 番目のパラメーターに渡したくありません- 不変であるため、セッターを追加したくありません
- 代わりに NullObjectPattern でコンストラクターを呼び出したくありません
null
私は自分自身と矛盾しているだけですか、それとも私が考えていないエレガントな方法はありますか?