NullObjectパターン
https://gyazo.com/a336ba83a10fd6855924ef001a2f2d28
厳粛な空護り
nullは、抽象度が高すぎる表現
nullの中にもいろいろな理由がある
とある理由で null にしている場合と、失敗してnullになっている場合など
遅延初期化のために、「まだnullです」って状況もある
nullの発生源
x は初期化されなかった。(C# では、初期化されていない x の値は null になります。)
誰かが x に null を代入した。あるいは、誰かが x の初期値として null を指定した。
なんでもかんでもNullObjectパターンのクラスを作ったらクラス爆発しちゃうので、使い所を考える
enumでnullとしての列挙子を用意するのも実装例の1つ
使い所と落とし穴について
最近は、null安全とOptional型を使う選択肢も増えた