oo-squareにていい話を聞く。privateなどのaccess controlをすることが情報隠蔽と思いがちだが、それは違うのではないかという指摘。インターフェースを作ることによって機能の記述と実現方法を分離することが肝なのでは無いかと。
原典をあたってみよう。Bertland Mayer「オブジェクト指向入門」p29-31。
「モジュールの内容の一部分だけをインターフェースと擦るべきである。」
情報隠蔽とは顧客モジュール(=あるモジュールを使おうとしているモジュール)の設計者がモジュールの内部テキストに物理的にアクセスできないようにする事ではない。」
なるほど、確かにその通りだ。