DDD落地过程中区分领域服务于应用服务

2021-09-25  本文已影响0人  后厂村老司机

前言

首先看下领域驱动设计中对应用层和领域层的解释:

image.png
从解释中我们可以看出,应用层的任务是与其他系统应用层合作、为领域层进行协调,实际上还包括了翻译等工作,具体工作可以参考一下我的上一篇博客: https://www.jianshu.com/p/e833fe5544c3
领域服务的主要职责是表达业务概念、业务状态、业务规则。
理论看起来终归是理论,落地的时候实际上两者没那么好划分,我们在落地过程中也做了一些探索,下面是我们的一些见解,仅供参考

领域服务于应用服务区分

1、从领域通用语言区分

2、从圈复杂度区分

method(){
    if(!domainModel.canDo()){
        return;
    }
    domainModel.do();
    
}

method(){
    if(!domainModel.canDo()){
        return;
    }
    int param = domainModel.someField();
    boolean result = thirdPart.callWith(param);
    if(!result){
        return;
    }
    domainModel.do();
}

3、从与其他系统交互区分

上一篇 下一篇

猜你喜欢

热点阅读