イミュータブルであるとは
イミュータブルであるとは、変更が不能であるということ。
変更してはいけない値とは何か。
それは事実。
事実とは?
お店でものを買った。
Webサイトでものを買った。
銀行でお金を引き出した。
Webサイトで入金した。
こういった事実です。
これをイミュータブルにしなければ?
これらの値を変数やオブジェクトに入れる。
この時に、もしイミュータブルじゃなかったら?
銀行の入金システムで、うっかり値を変更しちゃった。
となると、事実が変わってしまう。
思わぬバグが生まれるかもしれないですし、
そもそも、値がそうあるべきではない。
なので、イミュータブルであるべき。
どうしても変えたいときは?
でも、銀行の入金を取りやめとかする時には?
入金した事実はそのままに、『入金を取り消した』という事実を
追加で入れるべき。
イミュータブルかどうかは重要
データをイミュータブルにするかは、データのあり方として重要ですし、
銀行とかのシステムなら、データの保証が揺るぐことも起きるので、
設計の段階でも、値がイミュータブルであるべきかをちゃんと考えましょう。