8
値が有意に欠落している可能性がある場合、null参照よりも新しいブールフィールドの方が良いですか?
たとえばMember、lastChangePasswordTimeを持つクラスがあるとします。 class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } 一部のメンバーはパスワードを変更できないため、lastChangePasswordTimeには意味がない場合があります。 しかし、nullが悪である場合、値が有意に欠落する可能性がある場合は何を使用する必要がありますか?およびhttps://softwareengineering.stackexchange.com/a/12836/248528の場合、nullを使用して意味のない値を表すべきではありません。だから私はブールフラグを追加しようとします: class Member{ . . . constructor(){ this.isPasswordChanged=false, this.lastChangePasswordTime=null, } } しかし、私はそれがかなり時代遅れだと思います: isPasswordChangedがfalseの場合、lastChangePasswordTimeはnullでなければならず、lastChangePasswordTime == nullのチェックはisPasswordChangedのチェックとfalseがほぼ同じなので、lastChangePasswordTime == nullを直接チェックすることをお勧めします。 ここでロジックを変更すると、両方のフィールドの更新を忘れることがあります。 注:ユーザーがパスワードを変更すると、次のように時間を記録します。 this.lastChangePasswordTime=Date.now(); 追加のブールフィールドは、ここでnull参照よりも優れていますか?