新規作成  編集  差分  FrontPage  ページ一覧  検索  更新履歴  RSS  ソース  ログイン

TableModule

原文: http://www.martinfowler.com/eaaCatalog/tableModule.html

データベーステーブルまたはビュー内のすべての行に対するビジネスロジックを扱う単一のインスタンス。

解説の全文は『PofEAA125 ページを参照。

tableModuleSketch.gif

オブジェクト指向のキーは、データとそれを使う振る舞いとを一緒にすることにある。 伝統的なオブジェクト指向のアプローチは、Domain Model (116)のように識別子のあるオブジェクトがベースになっている。 従って、従業員クラスのインスタンスは、ある従業員を指すことになる。 これが機能するのは、従業員への参照があれば、操作を実行できるし、関連をたどれるし、従業員のデータを集めることができるからである。

Domain Model (116)の問題は、リレーショナルデータベースとのインターフェースである。 Domain Model では多くの場合、リレーショナルデータベースのことを「屋根裏に引きこもって誰も話したがらないクレージーなババア」として扱う。 その結果、データベースにデータを出し入れするのに 異なる2つのデータ形式を変換する必要があるため、 相当量のプログラムを書くことになる。

Table Moduleはデータベースのテーブルごとにクラスを用意し、その中にドメインロジックを書く。 インスタンスにはデータに対する様々なプロシージャが含まれる。 Domain Model (116)との主な違いは、 多くの注文があった場合に、 Domain Model (116)なら注文ごとに注文オブジェクトを用意し、 Table Moduleならひとつの注文オブジェクトですべての注文を操作する点である。

更新日時:2012/08/09 11:05:36
キーワード:
参照:[SideMenu] [OrganizingDomainLogic] [CatalogOfPofEAAInJapanese] [CatalogOfPofEAA] [CorrespondingCatalogOfPofEAA]