[ 目次, 前節,
次節, 索引 ]
3.3 可変データでのモデル化
多くの様相を持つ実世界をモデル化するため, 2章では多くの部分を持つ計算オブジェクトを構成する手段としての合成データを扱った. またその章では, データ抽象の考え方を説明した. データ抽象に従うと, データ構造はデータオブジェクトを作り出す構成子と, 合成データオブジェクトの部分にアクセスする選択子を使って規定する. しかし, 2章では触れなかったデータのもう一つの様相があることを知った. 変化する状態を持つオブジェクトで出来ているシステムをモデル化したいという希望は, 合成データオブジェクトの構成, 選択の他に,
修正の必要に導く. 変化する状態を持つオブジェクトをモデル化するために,
選択子と構成子に加え, データオブジェクトを修正する
変更子(mutator)を含んだデータ抽象を設計しよう. 例えば銀行システムのモデル化では, 口座の残高を変更する必要がある. そこで銀行口座を表現するデータ構造は, 演算
(set-balance! 〈account〉 〈new-value〉)
を認めることになろう. これは指示された口座の残高を, 指示された新しい金額に変更するものである. 変更子が定義されているデータオブジェクトを可変データオブジェクト(mutable data object)という.
2章では合成データを形成するための汎用「糊」として対を説明した. 本節では初めに, 対が可変データオブジェクトを構成する基本ブロックとして使えるよう, 対のための基本的な変更子を定義する. 変更子があると, 2.2節で勉強した列や木以外のデータ構造が作れるようになり, 対の表現力は格段に増す. また, 複雑なシステムを局所状態を持つオブジェクトの集りとしてモデル化する, シミュレーションの例を示そう.
[ 目次, 前節, 次節, 索引 ]