カプセル化

[私たちの用語]

カプセル化とは

ソフトウェアを構成する要素をコード(命令)とデータ(情報)に分類し、機能修正に対する耐久性で比較した場合、データの方が一般的に弱い構造を持つ。データは、利用者に対して、自分の構造自体を公開してしまうからである。
これに対し、コードは自身の実行形式であるインターフェイス(返却値・引数)によって、実際の内部処理(関数の内部)を覆っているため、内部ロジックを変更したとしても、インターフェイスさえ変更しなければ、結果的に機能修正が利用者に及ぼす影響を押さえることができる。
この性質を利用し、直接データを公開するのではなく、コードを通じて公開するような構造化を行えば、弱い構造をもつデータでも耐久性をあげることができる。この考え方をカプセル化、もしくはラッピング(参考:ラッパー)という。
カプセル化を進めることによりオブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まる。