我想知道您是否发现以下模式在域驱动设计中有意义。
领域层由模型和存储库组成。应用层由处理来自用户界面或模型-视图-控制器模式中控制器的查询的服务组成。
结构细节:
// 装配模型: 公开课短语 { 公共 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) 以及如何包含它?