我喜欢不变性的概念。我也喜欢没有空值的概念(如果可能的话,也尽可能没有 NullDesignPattern,没有 NullObjects ......)。
但是下面的场景呢:
我有一个 object User
,它有两个字段:birthday
and dateInLifeMarried
(可以是任何类似的字段;重要的是,起初这个字段是null
并且在对象生命中的某个时刻发生变化)。
由于它是不可变的,我希望这两个字段都在构造函数中:
public User(birthday, dateInLifeMarried)
现在:
- 我不想传递
null
给第二个参数 - 我不想添加一个 setter,因为它是不可变的
- 我不想用 NullObjectPattern 而不是调用构造函数
null
我只是在自相矛盾,还是有一种我没有想到的优雅方式来拥有它?