Null Object Pattern
from YYTypeScript#4
NPEによる実行時エラーを回避する目的
Nullを表現するサブタイプを自分で?定義することでnullがなくてもnull安全にできる(?)
nullの代わりに自作したNull Objectを返す
https://qiita.com/omochimetaru/items/ee29d4c6eb0d78f02b15#意見-null-object-patternによってnullにまつわる問題は解決する
Null Objectのメソッドを呼ぼうとしたらどうなる?
安全にメソッドが呼ばれ、そのメソッドはnullを返す
nullだった場合、落ちるパターン
実装例
Null Objectパターン | IT底辺脱却ブログ
Null object pattern - Wikipedia
NullObjectパターン - Qiita
https://dev.to/jamesmh/unhealthy-code-null-checks-everywhere-2720
nullでも安全?
このパターン以外でのヌルポの回避策
型検査
if x != nullのガードを使う
至るところに出てくる問題
書き忘れがありうる問題
なんだこれ、動的型付けだから嬉しいみたいなパターンなのか?
色々考えてNull安全になるように型付けして静的検査もしたけど、
実際のデータがそれを無視したものだった場合、落ちてしまう
けど、このパターンを使えばそんなときも安心!的な?
Singletonパターンと組み合わして実装されることが多い
null安全でない言語なら嬉しくなる?
逆にnull安全な言語なら無縁?
反論
失敗を表現する手法としてNullObjectパターンが不適切でEitherが適切だと思う理由 - Qiita
わかるmrsekut.icon
参考
Nullオブジェクトパターンの紹介と正体 - ベインのブログ
http://zecl.hatenablog.com/entry/20080210/p1
https://www.hyuki.com/dp/dpinfo.html#NullObject