传统MVC架构
DDD架构:
api层:api请求方式,透传【传递参数】,几个业务对应api
业务层:做编排,业务里要有哪些服务,执行顺序是什么,以及怎么做
领域层:负责领域内调用,然后领域怎么划分
Dao层:数据库操作【或者另外一个应用 数据源之类的】
遵守原则:
①允许跨层调用
②业务细节放在领域层,业务层负责编排,一行一行对应着一个调用,最好不要有其他代码了
③领域层禁止互相调用,可以从包名入手,直接对领域进行分割,就算代码冗余也没事。
④事务管理:放业务层有大事务风险,放在领域层会有一致性问题的风险
领域层怎么划分?
①将划分好的领域在每个业务中推演一遍,看看效果如何,要多角度尝试,验证划分是否合理
②同一领域在一起,不同领域分开,不管大小
③领域模型中加代码通过SPI, 领域具体实现要用倒置依赖的关系,