ベースパターン
個人的な読書記録です。
訪問者の方は kdmsnr さんのサイトを見ていただいた方が良いと思います。
http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?CatalogOfPofEAAInJapanese
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。