カプセル化
読み:カプセル-か
外語:encapsulation
プログラミングにおいて、特定のデータ構造やアルゴリズムを外部から隠蔽し、外部に対しては必要な手続きや結果のみを提供するもの。
概要
特にオブジェクト指向プログラミングにおいて、オブジェクト(データなど)を他の処理から隠蔽し、保護することを目的に提供される機構である。
「カプセル」という語感の通りオブジェクト内のデータ構造やアルゴリズムを包み込んで、オブジェクト外からの不正なアクセスからデータを守る。
オブジェクトが持つデータの参照や変更は、そのオブジェクトが提供する手段でのみ可能とすることで、意図しない手段でのデータ変更を防止し、もってバグの発生を避けることができる。
特徴
初期のC++など比較的早期のオブジェクト指向プログラミング言語においてはクラスの適切な使用がカプセル化の典型的な例だった。
やがて様々なプログラミング言語が登場すると、ラムダ式や無名関数などの関数オブジェクト、クロージャーなどとしても機能が提供されるようになっている。
再検索