新しいプロジェクトが始まったばかりで、アーキテクチャに関連する問題があります。ビジネス層でのモジュールの分離
- WebUIの
- ビジネス
- DataRepositories
各レイヤにのみその下の層への参照を持っています
は、我々は3層arhitectureを持っています。通信は次のように私たちはentities
と
business objects
(BO)と呼ぶもので行われます。
DataRepositories <--entities--> Business <--BO--> WebUI
<--X-->
は、だから我々は、エンティティとBOとしてUser
としてたとえばUserEntity
を持っているタイプX.
のオブジェクトを使用して通信を意味します。もう1つのタイプは、TicketEntity
とTicket
のチケットです。
現在、我々は十分に定義されており、Tickets
のような他のスライスと相互作用しないDataRepositories、ビジネスとWebUIのユーザーのためにAccounts
のようなものを持つ層を貫通して、いくつかの異なる垂直スライスを持っています。
チケットには購入者がおり、チケットとユーザーの接続先は分かりません。ビジネスコンポーネントはそれらの間でやりとりする必要がありますか、データレイヤーはユーザーをチケットにマッピングする必要がありますか?
具体的には、WebUIから呼び出されたBusinessに存在するチケットを作成する方法があります。引数として、チケットの詳細と、それがタイプuserのオブジェクトかusername/idだけであるかどうかわからない "the user"をとります。 CreateTicketを呼び出す前にプレゼンテーションがユーザーを取得するユーザーオブジェクトを渡す場合。しかし、WebUIがIDを渡すと、ビジネス層はチケット(ビジネス)のユーザビジネスコンポーネントへの参照を追加する必要があるユーザオブジェクトを解決する必要があります。