# 3.3使用可变数据建模

> 译者： [https://sicp.comp.nus.edu.sg/chapters/57](https://sicp.comp.nus.edu.sg/chapters/57)

Note: this section is a work in progress!

第2章将复合数据作为构造具有多个部分的计算对象的一种手段，以对具有多个方面的现实对象进行建模。 在该章中，我们介绍了数据抽象的学科，根据该学科，将根据构造函数（创建数据对象）和选择器（访问组合数据对象的各个部分）来指定数据结构。 但是我们现在知道第二章没有涉及数据的另一方面。 对由状态变化的对象组成的系统进行建模的需求导致我们需要修改复合数据对象，以及从中进行构造和选择。 为了对状态变化的复合对象建模，我们将设计数据抽象，除了选择器和构造函数之外，还包括称为 _mutators_ 的操作，这些操作会修改数据对象。 例如，对银行系统进行建模需要我们更改帐户余额。 因此，用于表示银行帐户的数据结构可能会接受操作`set_balance(![%5Ctextit%7Baccount%7D](img/0b38c564440cf099d82f077ea6563e67.jpg), ![%5Ctextit%7Bnew-value%7D](img/c8389d11d1b92ceaac24e0c4afa4ac7d.jpg))`，该操作会将指定帐户的余额更改为指定的新值。 为其定义了变量的数据对象称为_可变数据对象_。

第2章介绍了成对作为通用&lt;quote&gt;胶水&lt;/quote&gt;，用于合成化合物数据。 我们从定义对的基本变量开始，开始本节，以便对可以用作构建可变数据对象的构建块。 这些mutator大大增强了对的表示能力，使我们能够构建除在 [2.2](29) 部分中使用的序列和树以外的数据结构。 我们还提供了一些模拟示例，其中将复杂系统建模为具有局部状态的对象的集合。

