カプセル化の補足
コメントとトラックバックがあったので、軽く補足。
かれこれ1?年ほど前、オブジェクト指向を勉強し始めた当時は昨日書いた説明のようにきっちり分けられてたことの方が多かったし、「カプセル化=情報隠蔽は間違いだよ」と見かけることが多かった。そのころからカプセル化と情報隠蔽をいっしょくたにしてるをちらほら見かけたのも事実。
つーか、今見たら、誰が書いたのか知らんけど、はてなキーワードにもこう書いてあるし。w
構造と振る舞いをグループ化して1つの抽象物を定義し,異なる抽象物を互いに別物として分離する処理のこと.
内部データを外部から隠蔽する(情報隠蔽)をカプセル化として説明されることもあるが、誤りである。
ちょっとぐぐってみたら、それなりに説明してあるページを発見。
≫Encapsulation is not information hiding - JavaWorld
あと、手元にある戸松豊和さんの「Javaプログラムデザイン」でもカプセル化と情報隠蔽は分けて書かれてた。
現在では「カプセル化=情報隠蔽」が常識だから、いまさらそれをひっくり返そうなんて思ってないし、できるわけもない。
とりあえず、本来の意味を書いておく。
って程度のこと。
昔はこうだったのに、って言う年寄りの戯言にすぎないので、そんなにかみつかないで〜。w