2012-02-17 17 views
3

DDDに@Stateful、@Stateless、@WebServiceなどを追加するアプリケーション層(アプリケーションサービス)はありますか?下のリンクから、これは正しいと思われます。DDDとアプリケーション層

2番目の質問:アプリケーションサービスでリポジトリを含むすべてのメソッド呼び出しをラップする必要がありますか?あるいは、JSFでBeanをバックするというと、リポジトリクラスを直接使用できますか?アプリケーション層にはいつ、何を入れるのですか?私は、このartitechtureにEJBがどこに属しているのか分かりません。

アプリケーション層:この層はアプリケーションアクティビティを調整します。ビジネスロジックは含まれていません。ビジネスオブジェクトの状態は保持しませんが、アプリケーションタスクの進行状況を保持できます。

http://www.infoq.com/articles/ddd-in-practice

答えて

5

のJava EEは、DDDの反対である貧血モデルを提唱しています。 DDDが必要な場合、エンティティはビジネスロジックも実行する必要があります。これはサービスレイヤとエンティティの分離に反します。

+1

それで@ Stateful/@ Webserviceなどを持っているドメイン/モデルですか? – LuckyLuke

+0

はい、それは簡単にはできません。 JavaEEは、適切なDDDを使用するのを難しくします – Bozho

+0

あなたは何をお勧めしますか?どのようにアプリケーションを構成しますか? – LuckyLuke

0

DDDアーキテクチャでは、アプリケーションレイヤーと他のすべてのレイヤーがシステムの下位レイヤーとしか通信していないと考えられます。このため、アプリケーションサービスラップリポジトリがありますが、依存関係を使用している場合は、アプリケーションサービス層に沿ってすべてのリポジトリを再利用できます。

AppServiceの実際の作業は、他のサービスまたはリポジトリまたは包括的なドメインサービスとの連携を調整することです。

あなたのエンティティでは、あなた自身のエンティティについてのみビジネスロジックを持つ必要があります。常に単一責任原則(http://www.developerfusion.com/article/137636/taking-the-single-responsibility-principle-seriously/)を尊重する。

私は助けてくれるといいです

関連する問題