ドメイン駆動設計で次のパターンが意味があるかどうか知りたいです。
ドメインレイヤーは、モデルとリポジトリで構成されています。アプリケーション層は、ユーザーインターフェイスから、または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)と、それをどのように含めるかについてお聞きしたいのですが。