GRASPパターン - Pure Fabricationパターン(純粋架空物パターン)

Advertisement

Pure Fabricationパターンで提唱しているもの

Pure Fabricationパターンでは、オブジェクトの凝集性を高めるために人工的なクラスを定義して責務を割り当てるように提唱している。

考察

ほとんどのシステムでは、人工的に作成したクラスが存在しないことは稀である。代表的な例として、定数を管理するクラスやデータベースとのやり取りを行うクラスは人工的なクラスに分類することができる。

人工的なクラスを定義することにより、非人工的なクラスではアプリケーションの問題領域に特化した設計を行うことができるようになる。

メリット

  • 問題領域以外の責務を各クラスに無理やり割り当てる必要がなくなる。
  • システムよりの設計の責務を綺麗に纏めることが可能となる。
  • 非人工的なクラスに対して、問題領域のみを定義することにより再利用しやすくなる。

ものすごく単純な例

書籍を表現するクラスがある。まず始めに、Expertパターンのみを意識して責務の割り当てを行ってみる。具体的には「書籍をデータベースに登録する。」という責務を書籍の情報をもっている書籍クラスに割り当てる。
ごちゃまぜクラス
図1:書籍クラス

ここで別の視点から設計を考えてみる。「書籍」というのは業務分析で抽出されたクラスである(ドメインクラス)。一方で、「データベースとの通信」はシステムを実現するために必要な機能である(非ドメインクラス)。一般的にドメインクラスと非ドメインクラスをひとまとめに考えると、オブジェクトの凝集性が低下するため、あまりよくない設計になってしまう。

次にPure Fabricationパターンでの設計を考えてみる
ドメインクラスと非ドメインクラスの分離
図2:ドメインクラスと非ドメインクラスの分離

図2のように、ドメインクラスと非ドメインクラスを分離した結果、書籍クラスには問題領域に対する情報のみ保持されることになり、凝集性を高めることができた。

Advertisement

ショートカット

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

サイト検索

Google

Web サイト内

Y!ログール