サービスレイヤーとリポジトリの責任
-
29-10-2019 - |
質問
私のサービスやリポジトリでどこにラインを描くかについてのアドバイスが必要です。
public class Contact
{
public Guid Id {get;set;}
public string Username {get;set;}
public Guid? AvatarId {get;set;}
public Avatar Avatar {get;set;}
}
public class Avatar
{
public Guid Id {get;set;}
public string FullSizeImagePath {get;set;}
public string ThumbnailSizeImagePath {get;set;}
}
アバターモデルは連絡先モデルでのみ使用され、連絡先のオプションのプロパティであると仮定しましょう。私のリポジトリは、連絡先にアバターを追加する責任を負うべきですか、それともビジネス /サービスレイヤーがその機能を拡張する必要がありますか?アバターを持つことはビジネス要件であると主張することができますが、それはモデルの一部であるため、データレイヤーはそれに対処する方法を知っている必要があります。
リポジトリを介してアバターを追加 /更新および削除する機能を追加できることを提案しました。ビジネス /サービスレイヤーは、物理ファイルの保存、検証、およびリポジトリ上の適切なメソッドの呼び出しを担当します。リポジトリが気にするのは、適切な連絡先を添付し、アバターを追加することです。
私の思考プロセスは、アバターは連絡先でのみ使用されているため、現在、リポジトリを拡張してDALに機能を追加することでした。これは、別のAPIに役立つ場合があります。
正しい解決策はありません
所属していません StackOverflow