GRASPパターン - Expertパターン(情報エキスパートパターン)

Advertisement

Expertパターンが提唱するもの

Expertパターンは、オブジェクト指向での責務割り当ての基本を提唱している。オブジェクトに責務を割り当てる際に、その責務を満たすことができる情報を保持しているクラスに責務の割り当てを行う。

考察

オブジェクト指向のポイントのひとつであるカプセル化を意識して設計を行っていれば、Expertパターンを満たしていることが多い。これは「各クラスは必要な情報とその情報に対する操作が定義される」というカプセル化の原則と、Expertパターンが提唱している責務の割り当て方針が一致するためである。

メリット

  • 情報をもっているクラスが、その情報に対する操作の責任を担うため、クラス同士の余計な関連を少なくすることが出来る。
  • 各クラスの責務がシンプルになるので、理解しやすい設計を行うことが出来る。

ものすごく単純な例

以下のように、幅と高さの情報を保持している図形クラスがある
図形クラス
図1:図形クラス

ここで「面積を管理する」という責務をどのように与えたらよいのか考える。面積を算出するには図形の幅と高さの情報が必要となる。Expertパターンを意識して設計を行った場合、必要な情報は図形クラスが保持しているため、面積管理の責務も図形クラスに与えることになる。
Expertパターンを適用した図形クラス
図2:面積管理の責務を割り当てた図形クラス

以下に、責務を図形クラスに割り当てなかった場合の例を示す。
Expertパターンを適用しなかった場合の図形クラス
図3:面積管理の責務を他のクラスに割り当てた場合(一例)

図からも読み取れるように、余計な関連が増えてしまっている。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール