質問: _userService.GetUser( // id of current logged user ); ... // Get the company associated with the user ... _companyService.Update(company) } ``` 私はどのようにして会社を得るべきですか?私には2つの選択肢があります。 _userService.GetUser(..)は、関連付けられたエンティティ(会社、場所、その他)のすべての詳細を含むユーザーを返します。 _userService.GetUser(..)はすべての詳細を含めることなく、ユーザー情報のみを返します。 ``` _companyService.GetCompany( user.companyId) ``` 最初のケースでは、私のサービスに2つの異なるメソッドを持たなければならないかもしれません:ユーザーデータだけを取得するメソッドと、ユーザーデータとすべての関連するエンティティのすべての詳細を取得するメソッド。 2番目のケースでは、データベースへの2回のラウンドトリップを行いますが、各サービスについてより厳密な「単一責任」の概念を維持しています。 â€< あなたはどちらがより良いアプローチだと思いますか?私は行方不明のものがありますか? â€< どうもありがとうございます :)
回答: 私はこのシナリオでは何度も疑問を抱いていますが、実際には単一の責任で物事を小さくすることが道に行くと思います。あなたは欠点が(より意識して良いことですが)より多くのDB呼び出しであると述べていますが、この例では、追加の呼び出しがすべての関連するエンティティを一緒に返すことを保証しないと思います。