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