DDD实战篇-防腐层的正确理解

一般来说,为了防止第三方接口污染我们的领域服务,我们需要定义一套防腐层,来完成参数的映射。如下图所示:

防腐层的作用.png

这样的好处就是当外部系统发生改变时,我们只需修改防腐层一处的代码,而无需对领域逻辑进行修改。

但是,就开发效率角度,一些人就会有一些疑问,我将外部接口的参数原样的拷贝到防腐层中,感觉没啥必要,反而很影响效率。从而基本没有什么人在软件开发的时候再去编写防腐层来进行处理。

下面我将从三个方面叙述下防腐层真正的优点与使用方法:

  • 聚焦性:假设外部接口有100个参数,我们只需要关注10个参数,那么我们防腐层只需要定义10个参数即可。
  • 封装性:我们可能会在防腐层中对外部多个接口进行封装处理,从而返回我们系统中真正需要的参数,而外部多个接口的封装处理将沉淀到防腐层中。
  • 适配性:例如同一个字段,在外部系统叫做“地瓜”,在我们系统叫做“红薯”,我们需要通过防腐层来转化成我们系统约定的字段名。
  • 防御性:我们定义防腐层后,可能不会对当前系统产生很大的正向影响,但是后续如果外部接口发生变更,那么我们的收益非常大。
  • 扩展性:可以定义切面,来实现功能的扩展。

你可能感兴趣的:(DDD实战篇-防腐层的正确理解)