レイヤ構成

id:aufheben:20050603 の続き。

# yojik 『Repositoryはドメイン層の一部になると思います。(詳しくすると、インタフェースはドメイン層。実装はマッパー=データソース層)
XXXDataGatewayはデータソース層に属するので完全に別物だと思います。全体像を整理した図が欲しいですな。実装とインタフェースで依存関係が逆転している部分が多いですし。』

モデルとソースコードを書いてみました。
ドメイン層はインタフェースを出していませんが、出しても良いと思います。

yojik さんは永続化層(データソース層)のインタフェースをドメイン層と定義しているのですね。
僕は別に永続化層のインタフェースという定義で良いと思います。
上位層の実装は下位層のインタフェース"だけ"を知っているということで。


ビジネス層(=サービス層+ドメイン層)を DomainModel で実装する場合と、TableModule で実装する場合を両方用意してみました。
DomainModel の場合がこれで良いかご意見いただけるとありがたいです。