対象
この記事ではデータ隠蔽・情報隠蔽とは何ぞや?から
何のためにするの?まで落とし込むための記事です。
データ隠蔽
- クラスのメンバ(フィールドやメソッド)の公開範囲を限定すること
つまり、不用意にデータに触らせないためにある。
どうして、不用意にデータを触らせてはいけないのかは以下を考える。
例えば、どこからかしこもデータを触れる環境だと
そのデータを使用しているか範囲が絞りづらい
⇒ 保守性が低くなる(影響範囲がわかりづらくメンテナンスがめんどくさい)
これを解消するために「データを隠しましょう。」「関係ないところからは直接扱えないようにしましょう」というのが
データ隠蔽をする理由となる。
このデータ隠蔽を表現するために、カプセル化が用いられる。
カプセル化 → アクセス修飾子で公開範囲を制限する(private etc..)
このことからデータ隠蔽とカプセル化はセットで考えられることが多い
情報隠蔽
- 公開するものと非公開のものに分けること
抽象化することで関係性をきれいにしている。
モジュール間の連携を公開部分だけですることで、構造が複雑になるのを防ぐ目的
以下記事がわかりやすいのでご参考までに