我觉得DDD开发模式就是把部分需要操作的通用的操作实体类的代码,从service层转入domain层,使得让后面的人阅读代码起来可以更加专注在业务上。
比如说一个通用的逻辑删除(目前我们库里是有个enable字段的,enable为1就是正常状态,为0就是非正常状态)
在我们现在写的代码里因为各种原因可能会有多个方法和场景来修改这个值。
目前我们没有统一写法,就是在需要改值的情况下就直接xxx.setEnable(0)或者xxx.setEnable(Boolean.False),这样可能看的人还要想下啥意思,或者有的人项目很紧,写快了或者写昏头了本来要setEnable(0)的,他写成了setEnable(1),这样可能后期找问题的时候就坑爹了。
但是如果你在实体类里写方法对这个值进行操作,很大程度上避免了上述可能会发生的问题。
比如我可以在实体类里这样写:
public void disable() {
this.enable = false
}
public void able() {
this.enable = true
}
那这样大家在写代码的时候都去调这两个方法既可以减少错误的发生,又提高代码的可读性,使得核心业务代码更容易阅读(当然你要用setEnable()也不是不可以)
================================================================================================================
下面摘点别的大佬写的对DDD的理解:
那个英文博客我贴在下面了,https://medium.com/the-coding-matrix/ddd-101-the-5-minute-tour-7a3037cf53b8,虽然我也没看