私は記事で以下を読みました
不変オブジェクトは、元にたりやり直しや中止可能なトランザクションなど、特定の一般的なイディオムを実装する場合に特に便利です。たとえば、元に戻す。undoを実装するための一般的な手法は、各コマンドを逆に実行する方法を何らかの形で知っているオブジェクトのスタックを保持することです(いわゆる「コマンドパターン」)。ただし、コマンドを逆に実行する方法を理解するのは難しい場合があります。より簡単な手法は、連続するコマンド間のシステムの状態を表す不変オブジェクトのスタックを維持することです。次に、コマンドを元に戻すには、単に前のシステム状態に戻します(そして、おそらく現在の状態をREDOスタックに保存します)。
ただし、この記事では、不変オブジェクトを使用して「元に戻す」操作を実装する方法の実用的な例は示されていません。たとえば...Gmailの受信トレイから10通のメールを削除します。これを行うと、元に戻すオプションがあります。この点で、不変オブジェクトはどのように役立ちますか?