微服务,比如有商品微服务 和订单微服务
订单相关的有15张表
关于分层
方式1:基本每一个表 = 一个mapper = 一个DAO = 一个service
所以订单微服务有15个service
优点:解耦。易于查找相应的service和方法
缺点:在controller会引入大量service,更容易引起dubbo找不到service的异常。
方式2:基本每一个表 = 一个mapper= 一个DAO
但只写一个OrderService(15张表的service层都放在这一个类里面)
优点:在dubbo引用微服务时只需引用OrderService,不需要加其他14个。能更少引起dubbo调用找不到service的异常。
缺点:在维护时OrderService,要按表分为多个板块,方法不能重名,所以命名更麻烦一些,且这个类容易冲突。如果代码多了,一个类很多代码,更难找到相应的代码,也更容易冲突。
哪种方式好呢?
领域驱动设计为此而生,正是要解决你当前的面向数据库编程
百度了一下领域驱动设计,感觉纯理论的比较多。领域驱动设计 有些适合当前的微服务体系吗?
针对这个问题,领域驱动设计 的方案是什么哇?