我想知道您是否发现以下模式在域驱动设计中有意义。
领域层由模型和存储库组成。应用层由处理来自用户界面或模型-视图-控制器模式中控制器的查询的服务组成。
结构细节:
// 装配模型:
公开课短语
{
公共 int PhraseId { 获取;私人套装;}
公共字符串 PhraseText { 获取;私人套装;}
公共短语(字符串短语文本){ this.PhraseText = 短语文本;}
public void SetId(int phraseId) { this.PhraseId = phraseId; }
}
// 程序集存储库(引用程序集模型):
公共接口 IPhraseRepository
{
短语 SavePhrase(短语短语);
短语 GetPhrase(int phraseId);
}
// 装配服务(引用装配模型和存储库):
公共类 PhraseService
{
私有IPhraseRepository _phraseRepository;
公共短语服务(IPhraseRepository 短语存储库)
{
_phraseRepository = 短语存储库;
}
公共短语 SavePhrase(字符串短语文本)
{
短语短语 = _phraseRepository.SavePhrase( new Phrase(phraseText) );
// 做其他事情,如发送邮件、日志记录等。
// ...
返回短语;
}
}
特别是,将方法移动到 Phrase 实体类中是否有意义?那样的话,怎么称呼?
编辑:
上面的示例在 moffdub 的回答和 Adeel Ansari 的评论后进行了修改。更改突出显示。
我想问一下添加的 IPhraseRepository.GetPhrase(phraseId) 以及如何包含它?