Su的技术博客

  • 首页
  • 原创
  • 视频
  • Java
  • MySQL
  • DDD
  • 事故复盘
  • 架构方案
  • AI
  • Other
  • 工具
    • AI工具集
    • 工具清单
    • JSON在线格式化
    • JSON在线比较
    • SQL在线格式化
  • 打赏
  • 关于
路很长,又很短
  1. 首页
  2. 架构方案
  3. 正文
                           

【转载】DDD四色建模法

2023-08-25 3980点热度 0人点赞 0条评论

四色建模法来源于Peter Coad的 《Java Modeling In Color With UML》,中文版:《彩色UML建模》(末尾处有书籍领取方式,仅用于学习)。

Peter Coad和Mark Mayfield奠定了4种架构型(一种形式,所有的东西都或多或少地遵守)的早期工作。

4种架构型 Archetype:

  1. 时刻时段 MomentInterval:一个时刻或一段时间,粉红色表示。
    • 一次销售是在一个时刻完成的——这次销售的日期和时间。
    • 一次租赁发生在一个时间段——从登记入住到归还。
  2. 角色 Role:角色是一种参与方式,它由参与方(人或组织机构)、地点或物品来承担,黄色表示。
  3. 描述 Description:它是“分类目录条目似的”描述,它是一组反复应用的值,它也为所有对应到某个描述的东西提供行为,蓝色表示。
  4. 参与方-地点-物品 PartyPlaceThing:参与方(意味着人或组织机构)、地点或物品是扮演不同角色的人或物,绿色表示。

DDD四色建模法

这4种颜色中每一种都对应一种架构型的特征(属性、链接、方法、插入点和交互),对应的类或多或少都包含了这些特性。

确定一个类的颜色和架构型。

  1. 它是时刻或时段,是出于业务原因或法律原因,是系统需要追踪的东西吗?如果是这样,那么它是粉红色的时刻时段。
  2. 否则,它是一个角色吗?如果是这样,那么它是黄色的角色。
  3. 否则,它是一个分类目录似的描述,包含了一组可以反复应用的值吗?如果是这样,那么它是蓝色的描述。
  4. 否则,它就是绿色的参与方-地点-物品。

DDD四色建模法

实战案例

客户账户管理系统

许多业务利用账户来追踪客户在给定的业务交易背景下的借款项和贷款项。

客户账户管理以申请为起点,终止于账户交易。

在客户账户管理中,我们建立并维护账户,这样就可以从客户的角度来追踪和呈现正在发生的业务。

时刻时段。客户账户管理的主要时刻时段包括:

  • 客户账户申请(CustomerAccountApplication)。
  • 客户账户交易(CustomerAccountTransaction)。

DDD四色建模法

客户账户申请

客户账户申请组件有一个粉红色的时刻时段:“客户账户申请”。

粉红色的**“客户账户申请”** 链接到3个黄色的角色:

  • 客户账户申请者。
  • 申请审批者。
  • 负责账户的组织机构实体。

“客户账户申请”链接到蓝色的“客户账户描述”,表明这次申请对应哪种类型的账户。
也链接到其蓝色的**“客户账户特征描述”**,分别是选择的特征和附加的特性。

对于一个**“客户账户申请”,它的后续粉红色时刻时段是“客户账户交易”(通过绿色的“客户账户”**)。

关键方法:

  1. 创建客户账户申请。
  2. 检查特征的适用性。
  3. 生成账户。
  4. 评估得到的账户的质量。

图一


客户账户

绿色的**“客户账户”链接到两个黄色的角色,“客户账户持有者”和“负责账户的组织机构实体”,它也链接到一个或多个蓝色的“客户账号特征描述”**。

对于**“客户账户”,它的前驱粉红色时刻时段是“客户账户申请”,它的后续粉红色时刻时段是“客户账户交易”**。

关键方法:

  1. 创建客户账户。
  2. 计算日平均账户余额。
  3. 计算日平均容量。

客户账户交易

“客户账户交易”有一个粉红色的时刻时段:“客户账户交易”。

粉红色的**“客户账户交易”链接到3个黄色的角色:“客户账户持有者”、“负责账户的组织机构实体”、“作为业务地点的设施”(给定的客户账户事务发生的地点)。它也链接到粉红色的“客户账户交易明细”**。

“客户账户交易明细”链接到绿色的“客户账户”。

对于**“客户账户交易”,它的前驱粉红色时刻时段是“客户账户申请”,它的后续粉红色时刻时段是针对该交易的“会计过账”**。

关键方法:

  1. 创建客户账户交易。
  2. 计算客户账户平均交易金额。

最终生成的完整组件模型如图二:

图二

总结

四色建模是建立在UML基础之上的一种新型建模方式,在建模过程中需要按照4个步骤来完成业务领域的建模工作:

  1. 分析业务流程,确认流程中的关键名词,抽象出业务实体。
  2. 从用例入手,找出其中的红色(时刻时段)。
  3. 找出其中的相关元素。
  4. 细化每一个类的方法和属性。

参考资料

  1. Peter Coad:《Java Modeling In Color With UML》

 

本文仅供学习!所有权归属原作者。侵删!文章来源:阿飞 https://blog.csdn.net/u011385940/article/details/125652592

更多文章:

  1. 【进阶玩法】策略+责任链+组合实现合同签章
  2. 系统设计 | 如何表达迭代技术方案?(战术篇)
  3. 应用分层架构最佳实践:Alibaba COLA 4.0
  4. 企业4A架构:业务、应用、数据、技术的完美融合
  5. 殷浩详解DDD系列 第一讲 - Domain Primitive
  6. 系统设计 | 系统设计中需要考虑到的时间问题
  7. 系统设计 | 哪些技术标准可以帮助系统设计?
  8. 系统设计 | 高精度计算
  9. 系统设计 | 设计和解析 DSL
  10. 系统设计 | 对象转换方案
标签: 转载 ddd UML 四色建模法
最后更新:2023-08-26

coder

分享干货文章,学习先进经验。

打赏 点赞
< 上一篇
下一篇 >
广告
文章目录
  • 实战案例
    • 客户账户管理系统
    • 参考资料
最新 热点 推荐
最新 热点 推荐
干货 | 论Elasticsearch数据建模的重要性 马蜂窝消息总线——面向业务的消息服务设计 基于 MySQL Binlog 实现可配置的异构数据同步 视频笔记:Google发布Agent2Agent协议 视频笔记:什么是微服务,为什么是微服务? 视频笔记:什么是AI 智能体? 视频笔记:什么是Flink? 如何秒级实现接口间“幂等”补偿:一款轻量级仿幂等数据校正处理辅助工具
Elasticsearch 使用误区之六——富文本内容写入前不清洗基于 MySQL Binlog 实现可配置的异构数据同步马蜂窝消息总线——面向业务的消息服务设计干货 | 论Elasticsearch数据建模的重要性你可以不用RxJava,但必须得领悟它的思想!如何秒级实现接口间“幂等”补偿:一款轻量级仿幂等数据校正处理辅助工具视频笔记:什么是Flink?视频笔记:什么是AI 智能体?
浅析设计模式3 —— 装饰者模式 干货 | Elasticsearch 数据建模指南 二级缓存架构极致提升系统性能 仅使用set属性值就把数据库数据给改了 26 条有效的AI提示词技巧 MySQL事务死锁问题排查 微博话题高性能降级设计-final.pdf 大型系统架构重构10步法

CRUD (1) Event Sourcing (1) graphql (1) id (1) NoSQL (1) quarkus (1) rest (1) RocketMQ (2) Spring Boot (1) zk (1) zookeeper (1) 上下文 (1) 事务消息 (1) 二级缓存 (1) 值对象 (1) 关系数据库 (1) 分布式缓存 (1) 原子性 (1) 唯一ID (1) 商品 (1) 多对多 (1) 子域 (1) 字符集 (1) 客户端心跳 (1) 幂等 (2) 干货 (1) 并发 (1) 应用场景 (1) 应用架构图 (1) 康威定律 (2) 异步复制 (1) 微服务架构 (2) 总体方案 (1) 技术方案 (2) 技术架构 (2) 技术架构图 (1) 技能 (1) 持续集成 (1) 支撑域 (1) 故障恢复 (1) 数据架构图 (1) 方案选型 (1) 日记 (1) 服务发现 (1) 服务治理 (1) 服务注册 (2) 机房 (1) 核心域 (1) 泄漏 (1) 洋葱架构 (1) 消息队列 (5) 源码剖析 (1) 灰度发布 (1) 熔断 (1) 生态 (1) 画图工具 (1) 研发团队 (1) 线程 (2) 组织架构 (1) 缓存架构 (1) 编码 (1) 视频 (18) 读写分离 (1) 贵州 (1) 软件设计 (1) 迁移 (1) 通用域 (1) 集群化 (1) 雪花算法 (1) 顺序消息 (1)

推荐链接🔗
  • AI工具集
  • 工具箱🛠️

COPYRIGHT © 2014-2025 verysu.com . ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备15033072号-2

x