1

レイヤード アーキテクチャでは、レイヤーはその下のレイヤーによって提供されるサービスのみを使用する必要があることを多くの本で読みました。エンタープライズ アプリケーションで一般的に使用されるレイヤーは次のとおりです。

  1. プレゼンテーション
  2. 仕事
  3. 持続性

つまり、ビジネス レイヤー (ビジネス ロジックを含む) のサービスは、永続レイヤーによって提供されるサービスにのみアクセスする必要があります。

ユーザーにメッセージを送信する MessageService があります。オブジェクトの状態に重大な変化があった場合は常に、関連するすべてのユーザーにその変化について通知する必要があります。これは、変更を識別したビジネス レイヤーのサービスが MessageService を使用してメッセージを送信する必要があることを意味します。しかし、messageService はそれ自体がビジネス レイヤーにあるため、同じレイヤーの他のサービスがそれにアクセスすることはできません。

では、コードのアーキテクチャに違反せずに MessageService を使用するにはどうすればよいでしょうか?

4

1 に答える 1

0

プレゼンテーション レイヤー (またはトップ レイヤー) は、UI だけを意味するものではなく、システム内のサービスを消費するものであれば何でもかまいません。つまり、スケジュールされたジョブを最上位層にすることができます (プレゼンテーション層として名前を付けたくない場合があります)。あなたの場合、MessageService はシステム内の他のサービスを消費するため、最上位にある必要があると思います。たとえば、Web サービスを作成する場合、それはサービス層の上にある必要がありますが、別の名前を付けたい場合があります。

于 2011-09-19T16:23:09.127 に答える