JAVA架构之路(DDD架构模型)

DDD(domain-driven design)领域驱动设计。虽然名字看上去有点新,其实也是内容也是我们常见的,它也可以说微服务思想的一个范畴。

领域驱动设计,这里的领域,可能是一块功能,一项技术,一个小型系统,一个插件,一个服务等概念。它的主要思想是把复杂系统进行不同维度分解(横向分解或者众向分解),解决业务复杂的软件系统的建模和设计问题。

横向分解:
是指通过领域划分来分解问题,通过限界上下文来分解系统,把一个复杂的领域分解成几个不太复杂的子领域,不同子领域解决不同的问题,不同的子领域用不同的限界上下文来实现,这样,单个限界上下文的复杂度就可控了。
纵向分解:

是指把技术实现从具体的业务逻辑分离出来,避免技术复杂性传染到业务层,当技术方案变更时,也不会影响业务代码。

在软件设计中DDD无处不在。

比如我们项目中用到的各种组件,都是属于一个领域。 比如:redis ,mysql,认证授权,权限管理,

报表系统,订单系统,我们都将它作为一个领域进行设计。只对外提供API就能使个领域进行衔接。而每个领域使用不同的技术(或者语言)实现,并不会影响上层应用的功能。

这也是体现了一种抽象和封装的思想。

JAVA架构之路(DDD架构模型)_第1张图片

JAVA架构之路(DDD架构模型)_第2张图片 

 

你可能感兴趣的:(java,架构)