私はエンティティAとBを持っているとしましょう。それぞれに対して私はserviceXとrepositoryXを持っています。 serviceAからBのものが必要な場合、私はserviceBに電話してはいけませんか?リポジトリBを直接呼び出す必要がありますか?ベストプラクティス:他のサービスまたは直接リポジトリを呼び出すサービス?
ありがとうございます。
私はエンティティAとBを持っているとしましょう。それぞれに対して私はserviceXとrepositoryXを持っています。 serviceAからBのものが必要な場合、私はserviceBに電話してはいけませんか?リポジトリBを直接呼び出す必要がありますか?ベストプラクティス:他のサービスまたは直接リポジトリを呼び出すサービス?
ありがとうございます。
私が理解できるように、AとBの2つの層:ビジネスロジック(サービス)とデータアクセス(リポジトリ)があります。 ベストプラクティスは、AとBがインターフェイスを介して通信する別々のコンポーネントであることを確認することです。 AのデータアクセスはコンポーネントAのプライベートにする必要があります。したがって、コンポーネントBがコンポーネントAからのデータを必要とする場合、コンポーネントAにデータアクセスレイヤではなくパブリックインターフェイスを使用するように要求します。
ご返信ありがとうございます。それは実際に私がやっている方法です。それはちょうど私はいくつかの循環参照を取得しているが、私はそれらを回避する方法を見ることができません。新しい質問を投稿します。 – ldepablo
「直接呼び出す」とはどういう意味ですか?あなたのリポジトリとサービスはエンティティを使わずにどのようにアクセスできますか?あなたはシングルトン、サービスプロバイダなどを介してそれらを紹介する予定ですか?私たちはいくつかの詳細を必要としていると思います。 – IceFire
あなたのコメントをありがとう。私は総称していた。私は、Aのビジネスロジックを管理するために、エンティティAとサービスAの上にいくつかの操作を持つリポジトリAがあると考えていました。 Bと同じです。彼らはシングルトンです。質問はベストプラクティスに関するものです。 serviceAのメソッドの場合、repositoryB.foo()を呼び出すか、またはrepositoryB.foo()を呼び出すメソッドserviceB.foo()を呼び出す必要がありますか? – ldepablo