テーブルモジュール

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

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

解説の全文は『PofEAA』 125 ページを参照。

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

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

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


PofEAA index | パターンカタログの日本語版 | パターンカタログの英日対応表