什么是DDD
领域驱动设计(Domain Driven Design,DDD),这篇文章接下来不再讲概念了,主要写一点实际的应用。
传统mvc模型
------ controller
------ service
------ model
controller接受请求后线性执行接下来的一系列方法,在单服务中,一个model可能充当多种角色,例如product在电商领域中可能为商品,在物联网领域为制作品,产生误解和冗余。简单的controller接受请求,service处理逻辑 model 与数据库交互已经不满足日益增长的需求。
ddd模型
- 每一个domain分开做一个服务
----- user
----- search
----- payment - 在每个服务中domain拆分多个service
---- user/info
---- user/admin
---- user/vip - sevice之间可以相互调用,service再通过调用dao层访问数据库
---- user/info/get
---- user/info/update
---- user/info/patch
---- user/info/delete - dao层(也叫dal)完成数据库的操作
----user/info/get/mysql
---- user/info/get/redis
---- user/info/get/mongodb