カプセル化と情報の隠蔽が別物で、カプセル化=クラスそのもの?

まとめること=カプセル化

隠すこと=情報隠蔽

カプセル化ってのは、フィールドとメソッドを一緒に定義する、ぶっちゃけクラスそのものの機能ですね。

2007-03-09 - 人類みんなごくつぶし

 
 カプセル化=クラスそのものだなんてあり得ないと思います。(それは流石にぶっちゃけすぎかと)

 カプセル化は「オープン・クローズドの原則」(モジュールは拡張性について開いて(Open)おり,修正について閉じて(Closed)いなければならない)を守るために「も」必要で、これを守るために用いられる一つの方法が「情報隠蔽」である筈です。

 機能を拡張する際には内部や外部のコードの追加に対応でき、仕様変更に耐えられるようになっていなければならず、
 機能を修正する際には内部でいかに異なった振る舞いをしようともカプセル化されている以上、外部には影響を与えず修正されなければならない。

 これらが外部に(内部にも)対して何らかの悪影響を与えるようであれば「適切にカプセル化されていない」と言える、と思うので。

 だのでカプセル化情報隠蔽を内包していて、その手段の一つである筈で、
 encapsulation=まとめて終わりではない、と思う訳です。

 ともあれ、

誤解解釈が主流をしめていれば、コミュニケーションにも困らないかもと。。。

 は、とても危険な考えだと思います。
 劣化、誤解が主流になって、それが当たり前になるのはちょっと(どころか大変)困る気がします。

 と、こんな事を言っておきながら僕自身正しくないかもしれません。