コンテンツにスキップ

カプセル化という概念

前節、前々節において、セッターやゲッターをお見せしました。

void   setName(String name){ this.name = name; }
String getName(){ return tuis.name; }

1節では、

  1. 変数などを直接触らないので安全性が増す。
  2. 機能がまとまることによって、設計がシンプルになる

と述べました。

セッターやゲッターでは、2にも関連しますが、抽象化を行っています。

この抽象化過程を「カプセル化」と呼びます。

カプセル化は、セッターやゲッターに限らず、あらゆる設計に適用されます。

例えば、Javaのサードパーティ製(非公式・第三者)のライブラリとして、POIというものがあります。これは、Webサーバーで有名なApache財団(Foundation)が、JavaでMicrosoft Office(WordやExcel)などを操作できるようにしたライブラリです。

我々は、Excelのファイルをどのように作成すれば良いかわかりません。しかしながら、POIが用意したものを利用して作成することが出来ます。

XSSFWorkbook workbook = new XSSFWorkbook();

Excelに関する操作をメソッドに任せ、中のロジックを見えなくしているので、操作がシンプルになります。中にあるものを意識せずに操作しやすいように抽象化しておく過程こそカプセル化です。

ちなみに、似たような概念として、オブジェクト・コンポジションというものがあります。

「必要となる機能を持つクラスのオブジェクトをインスタンス変数に部品として保持しておいて、必要に応じてそのメソッドを呼び出す」=”オブジェクトコンポジション”


最終更新日: 2021年4月30日