今天看到美团的文章是关于遵循DDD来设计业务模型的,当时就想到了MVC这个架构设计模式,便和美团的朋友探讨了一番,探讨完之后,思考之后,便想写个随笔记录一下。
首先来讲,我一开始是讲DDD与MVC混肴了的,其实这两种模式,是不可与之比较的,因为MVC是技术角度设计技术架构,DDD则是从业务的角度设计业务架构,两者是相辅相成的模式。
其次,我们今天不说DDD中的各种概念,就简单说一下,DDD是干什么的,与传统业务划分模式有什么不同呢?
DDD是用来作为业务划分的一套准则,使用DDD可以使业务划分更加清晰、合理,相应的,在代码上面则体现为类职责更加单一,代码分层更加合理、明确,更好的实现高内聚、低耦合的代码要求。
DDD与传统业务划分模式的区别,往常我们划分业务,大多是根据数据库实体来划分一个service,然后所有相关这个实体的操作都写在这个service里面,这样的设计在业务简单时是完全OK的,但是,在后面的业务发展中,service往往会臃肿不堪,举个例子,比如一个订单service,我们一开始会做订单提交之类简单的逻辑,后面就会新增订单统计相关的逻辑,这些逻辑看似与订单有关,但又可以独立出去,我们没有一个准则来划分;而DDD就为我们提供了这样一套准则,帮我们去更好的划分业务领域,去分类;也就是说DDD给我们提供了业务划分的准则,与传统模式相比,更加具有指导性,有规范。
来源:oschina
链接:https://my.oschina.net/u/2312080/blog/3223352