エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

イミュータブルパターンの使い所【302日目】

イミュータブルであるとは

イミュータブルであるとは、変更が不能であるということ。

変更してはいけない値とは何か。

それは事実。

事実とは?

お店でものを買った。
Webサイトでものを買った。

銀行でお金を引き出した。
Webサイトで入金した。

こういった事実です。

これをイミュータブルにしなければ?

これらの値を変数やオブジェクトに入れる。

この時に、もしイミュータブルじゃなかったら?

銀行の入金システムで、うっかり値を変更しちゃった。
となると、事実が変わってしまう。

思わぬバグが生まれるかもしれないですし、
そもそも、値がそうあるべきではない。
なので、イミュータブルであるべき。

どうしても変えたいときは?

でも、銀行の入金を取りやめとかする時には?

入金した事実はそのままに、『入金を取り消した』という事実を
追加で入れるべき。

イミュータブルかどうかは重要

データをイミュータブルにするかは、データのあり方として重要ですし、 銀行とかのシステムなら、データの保証が揺るぐことも起きるので、
設計の段階でも、値がイミュータブルであるべきかをちゃんと考えましょう。

イミュータブルパターン自作した時の記事

willow710kut.hatenablog.com

willow710kut.hatenablog.com