DDD落地 - 实现一个简单的API

1. 前言

去年看了这个系列产品代码都给你看了,可别再说不会DDD的文章,对DDD了解得深了一些,结果长时间不用,全给忘光了。最近又捡起来看了看,然后实操了一下,做了个小小的demo,加深一下印象,下次哪个项目可能就能用上。
另外,这个demo没有做领域事件,回头再加上。
代码地址: https://github.com/ComicFavor/DDD-Demo

2. 代码工程

DDD的术语、细节就不在这个贴子里讲了,前言提及的文章讲得已经足够详细了,这里直接上代码。

2.1. 项目结构

我们常常习惯用先技术再业务的方式来构建工程,我一直都是这样做的,比如说最基本的三层架构。
参考文章里说这是一种反模式,所以也仿照着来了个非反模式
顺便说一句,这样似乎会让所有的核心功能都在一个工程里面,不知道是不是符合最佳实践。

image

2.2. 调用关系

刚接触DDD,肯定会被里面的各种术语和关系搞得晕头转向,我这边画个图。

一般有以下两种用例:

  1. 创建资源

    image

    注意:工厂可能需要调用资源库去进行一些判断,比如说是否重复等等,这个功能也可以在领域服务中实现。

  2. 更新资源:

    image

    注意:当业务复杂到需要同时操作多个实体时,就需要用到领域服务

posted @ 2024-06-17 13:54  王一乙  阅读(19)  评论(0编辑  收藏  举报