Spring-Boot

在 Spring Boot 中使用抽象工厂和工厂方法模式

1. 引言

1.1. 需求

最近在开发一个基于 Spring Boot 框架的制品管理平台,使用了领域驱动设计的思想进行了业务模型的设计。

开发过程中遇到了一个常见的需求:创建不同类型的制品(Artifact)。需求概括如下:

  1. 不同的构建任务会生成不同类型的制品,如 Jar 包、Dockers 镜像等;
  2. 所有类型的制品具备一些公共的属性,如名称、描述、创建时间等;
  3. 不同类型的制品存在一些独有的属性,如存储位置、是否关联图片等;
  4. 制品的独有属性用于创建后,触发下游的其他任务。

对于 CRUD Boys 来说,是一个十分常见的需求,最简单的实现方式就是使用贫血模型。