[ 目次, 前節, 次節, 索引 ]

2.1  データ抽象入門



1.1.8節で, 更に複雑な手続きを作り出す時に素材として使われる手続きは, それぞれの演算の集積としてだけでなく, 手続き抽象としても見られることを注意した. つまり, 手続きがどう実装されているかの細部は隠しておき, それぞれの手続き自身は, 全体的に振舞いが同じの他の手続きで取り替えられる. いいかえれば, 手続きが使われる方法を, 手続きをより基本的な手続きを使って実装する方法の細部から分離する抽象化が出来る. 合成データに対する類似の考えは, データ抽象(data abstraction)という. データ抽象は, 合成データオブジェクトの使い方を, それがより基本的データからどう作られたかの細部から隔離する技法である.

   データ抽象の基本的な考えは, プログラムを合成データオブジェクトを使うように構成し, 「抽象データ」を操作出来るようにすることである. つまり, プログラムはデータを, 当面の仕事を実行するのに本当に必要ではないデータについては, 何も仮定しないように使うべきである. 同時に 「具体的な」データ表現は, データを使うプログラムから独立に定義すべきである. システムのこういう二つの部分のインターフェースは 選択子(selectors)とか 構成子(constructors)という一組の手続きであって, それらが具体的表現を使い, 抽象データを実装している. この技法を示すため, 有理数を扱う一群の手続きをどう設計するか考えてみよう.


[ 目次, 前節, 次節, 索引 ]