ベースパターン

個人的な読書記録です。

訪問者の方は kdmsnr さんのサイトを見ていただいた方が良いと思います。
http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?CatalogOfPofEAAInJapanese

Gateway

外部システムまたはリソースへのアクセスをカプセル化するオブジェクト。
Client --> Gateway --> Supplier

Mapper

独立した2つのオブジェクト間の通信を設定するオブジェクト。
Gateway との違いは依存関係か?
Client <-- Mapper --> Supplier

Layer Supertype

レイヤのすべてのタイプに対して、スーパータイプとしての役割を果たすタイプ。
ダイコン時代ではインタフェースとしては不要。共通実装の置き場としては可。

Separated Interface

実装から分離したパッケージでインタフェースを定義する。
個人的には第3のパッケージにインタフェースを置くのが好み。

Registry

他のオブジェクトが一般的なオブジェクトとサービスを検索するために使う既知のオブジェクト。
できれば使用しない。

Value Object

ID に基づいた等価性を確保していない、Money や Data Range などのシンプルな小型オブジェクト。
Data Transfer Object のことではない。
不変(Immutable)であることが好ましい(あるべき)。

Money

貨幣の値として機能する。
実際に使ったことはないけど...

Special Case

特定のケースで特別な振る舞いを提供するサブクラス。
Null Object とか。

Plugin

コンパイル時ではなくシステム構成時の際にクラスをリンクする。
昔は Class.forName() とか自分で書いてたけど、今は DI Container の仕事ですね。

Service Stub

テスト中に問題となるサービスへの依存性を除去する。
いわゆる Mock Object。

Record Set

テーブルデータのメモリ上の表現。
J2SE 1.4 の Dynamic Proxy を使えば、簡単に明示的なインタフェースに変換できるかも。