カプセル化とは
関連するデータと処理を一つにまとめる設計原則
カプセル化はオブジェクト指向での使用が最も有名である!
フィールドを操作するメソッドでオブジェクトの内部要素への直接アクセスを制限する際によういる。
カプセル化はオブジェクト指向だけではない!
抽象データ型、プログラムモジュール、ソフトウェアコンポーネントの実装にも使用されている。
ビジネスロジックのカプセル化
カプセル化が本領を発揮するのは、ビズネスロジックのカプセル化です。
ビズネスで扱う値の計算や判断は変更されたすく、値の種類ごとに一つのモジュールにまとめておけば、どこに何が書いてあるかをわかりやすく、変更するときも楽にできます。
またビジネスで扱う値は、より具体的に定め、モジュール化にする事で計算ロジックが増えすぎず、変更理由を狭まります。
カプセル化の狙い
- アルゴリズムの変更を際に変更箇所がそのモジュールの内部に限定されることになるので、保守管理しやすい。
- 関連するデータと処理をまとめることで単一責任の原則となり、変更理由を狭める
情報隠蔽
プログラムやモジュールに関する設計情報は濫りに公開してはならず、むしろ積極的に隠蔽すべきで。つまり、公開すべきものはプログラムやモジュールの仕様であるという設計原則
情報隠蔽狙い
- モジュールの使い方がわかりやすくなる
- モジュールを作成者の想定通りに使ってもらえる
- データを不用意に変更されることを防ぐ
カプセル化と情報隠蔽の違いとは
説明 | 簡単に言うと | |
---|---|---|
カプセル化 | データとロジックをモジュールにまとめること | まとめること |
情報隠蔽 | モジュールの実装詳細は隠しましょうということ | 隠すこと |
まとめ
カプセル化=情報隠蔽というイメージだったが違う設計原則であり、オブジェクトのアクセサは、カプセル化と情報隠蔽の設計原則で行われていることがわかりました。
カプセル化することで保守しやすく可読性が高いモジュールになります。
参考資料