ドメイン層とデータソース層
無難かなぁと思うレイヤ構成:
- Table Data Gateway
- いわゆる DAO。
- 参照、更新、削除が1ヶ所に記述できる。
ナイーブなオブジェクト指向に憧れつつ、
結局こんなふうに考えているのですが...
今日、会社の若手エンジニアたちが、
Spring + Hibernate の上に Domain Model で
業務ロジックを書こうとしているという話を聞いて、
今さらながらもう一度自分でも試してみました。
もしかしたら行けるかもと思ったのですが、
Hibernate を使ったとしてもまだまだ課題がありそうです。
- DTO と Domain Model の間でデータの詰め替えが必要。
- Domain Model に記述するビジネスロジックの、インタフェースと実装の分離は必要ないか?
- 参照・新規と更新・削除ではビジネスロジックを記述する場所が異なる。
- データの更新前に検査をする場合、そのロジックはどこに記述すべきか?
- データの更新後に検査をする場合、検査が NG のときの復旧をどうするか?
- 更新は Hibernate が自動でやってくれるので良いが、
削除時に Domain Model は Hibernate の Session をどう見つけるか?
などなど。
もし本当にナイーブなオブジェクト指向を実践している人がいるなら、
一度ソースコードを見てみたいものです。
ねぇ Fowler さん。
# この日記、もしかして会社的には NG? (^^;)