Command - marmot-cn/marmot-framework GitHub Wiki

命令

我们是按照CQRS的设计思路统筹代码. 我们使用命令来在最外层封装针对用户的各个调用. 即我们把用户对网站的任何操作(非查询), 都统一抽象为各个命令.

这样的好处:

  • 统一沟通语言, 我们使用命令来统一命名用户对网站的操作
  • 统一日志入口, 我们对网站的操作日志统一围绕命令这层进行封装

注意命令和领域模型的函数一一对应的, 因为可能:

  • 一个命令对应一个领域服务(同时对应多个领域模型)的public函数
  • 一个命令对应多个领域模型(一个领域模型可能也包含其他领域模型的操作)的public函数
  • 一个命令对应一个领域模型的public函数