データ抽象化を目的として、データ構造と、その操作を行うための手続きをまとめて定義される型のことです。
たとえばスタックというデータ構造を実現するとき、データを配列を使って管理することも、連結リストを使って管理することも可能です。その選択によって、スタックへのプッシュやポップといった操作の実装方法は異なってきますが、スタックを利用する側からすれば、具体的な実装方法がどうであるかは問題でなく、データをプッシュできること、データをポップできることだけが関心事といえます。そこで、そうした必須の操作を関数やメソッドなどのかたちでインターフェースとして公開し、実装の詳細を隠すように定義されるのが抽象データ型です。
このように、具体的な実装部分(配列で実装されている、連結リストで実装されているといったこと)と、抽象的な属性(データをプッシュできる、データをポップできるといったこと)を明確に分離し、利用者側には抽象的な部分を使用するソースコードだけが現れるようにする考え方を、データ抽象化といいます。抽象データ型は、データ抽象化を実現する方法の1つです。
データ抽象化が行われていることによって、あとから具体的な実装を変更しても、利用者の側に影響を与えないようにできます。
また、型として使えることは、プログラムの様々な場所から利用できるということでもあります。具体的な実装が修正されると、利用しているすべての箇所を一斉に修正できることも利点になります(たとえば内部で性能の改善を行うと、すべての利用者がその恩恵を自動的に受けられる)。
アルゴリズムとデータ構造編【データ構造】第5章では、抽象データ型としてのスタックについて取り上げています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |