抽象データ型の履歴
ADT: Abstract Data Type
javaでいう、ListとかSetとか。Cならfopenでのファイルハンドラとかかな?あるものを扱うオブジェクトがあって、外部はその内部のことを知らなくても扱えるように提供されているインタフェースのこと。
オブジェクト指向(クラス)の本質は抽象データ型であるというようなことがCode Complete第6章に書かれてある。
オブジェクト指向の定義といえばカプセル化、継承、ポリモーフィズム。
カプセル化と抽象データ型は意味が違う?カプセル化は抽象データ型よりも意味が広いのかな?
抽象データ型
http://d.hatena.ne.jp/sumim/20071004/p1
「カプセル化=情報隠蔽+抽象データ型」なのかな?
情報隠蔽とカプセル化って違うもの?
http://andore.com/money/archives/001282.html
わかった、抽象データ型は「データと手続きをなんかわけのわからないものにします!」っていうだけ。だからCのファイルハンドラとか普通に見れる。それに情報隠蔽を施したものがカプセル化。JavaのFileクラスとかになるわけ。
情報隠蔽や抽象化はカプセル化を実現するための手段にすぎないのかも。