ドメイン駆動設計で次のパターンが意味があるかどうか知りたいです。
ドメインレイヤーは、モデルとリポジトリで構成されています。アプリケーション層は、ユーザーインターフェイスから、またはModel-View-Controllerパターンのコントローラーからのクエリを処理するサービスで構成されます。
構造の詳細:
//アセンブリモデル:
パブリッククラスフレーズ
{{
public int PhraseId {get; プライベートセット; }
public string PhraseText {get; プライベートセット; }
public Phrase(stringphraseText){this.PhraseText =phraseText; }
public void SetId(intphraseId){this.PhraseId =phraseId; }
}
//アセンブリリポジトリ(アセンブリモデルを参照):
パブリックインターフェイスIPhraseRepository
{{
Phrase SavePhrase(フレーズフレーズ);
フレーズGetPhrase(intphraseId);
}
//アセンブリサービス(アセンブリモデルとリポジトリを参照):
パブリッククラスPhraseService
{{
プライベートIPhraseRepository_phraseRepository;
public PhraseService(IPhraseRepositoryphraseRepository)
{{
_phraseRepository =phraseRepository;
}
public Phrase SavePhrase(stringphraseText)
{{
フレーズフレーズ=_phraseRepository.SavePhrase(new Phrase(phraseText));
//メールの送信、ロギングなどの他のことを行う。
//..。
フレーズを返す;
}
}
特に、メソッドをPhraseエンティティクラスに移動することは理にかなっていますか?その場合、それはどのように呼ばれますか?
編集:
上記の例は、moffdubからの回答とAdeelAnsariからのコメントの後に変更されています。変更が強調表示されます。
追加されたIPhraseRepository.GetPhrase(phraseId)と、それをどのように含めるかについてお聞きしたいのですが。