DDD战略设计(1)四色建模法

开发者 2024-10-7 15:50:58 113 0 来自 中国
1. 方法先容

四色建模法源于Peter Coad的《Java Modeling In Color With UML》,它是一种模子的分析和设计方法,他提出要把全部模子分为四种类型,用四种颜色体现(如图8-14所示)。
1.png 在四色模子中,我们将抽象出来的对象分为四种原型(archetype)
(1)业务关键时候(Moment-Interval)
这种对象体现那些在某个时间点存在,大概会存在一段时间的。如许的对象每每体现了一次外界的请求,比如一次询价,一次下单大概一次租赁。
Moment-Interval是最告急的一类对象,由于他是体系业务价值所在,一样寻常用粉赤色体现。如许的对象一样寻常有一个起始时间和停止时间,以及一个唯一的标识号,用来唯一的标识这一次用户请求,比如OrderNo.
(2)Role(脚色)
这种对象体现的是一种脚色,每每由人大概物来负担,会有相应的责任和权利,一样寻常一个moment-interval对象会关联多个Role。比方一次下单涉及两个Role:客户-商品。
这类对象是除moment-interval对象外最告急的一类对象,一样寻常用黄色体现。
(3)人-事-物(Party,Place, or Thing)
这种对象每每体现的是一种客观存在的事物,比方:人、构造、产物大概配件等,这些事物每每会在一种moment-interval 中扮演某个Role。比方,某个人会在一次购买中扮演Customer的脚色,也可以在询价中扮演询价人的脚色。
4)形貌(Description)
这种对象一样寻常是分类用大概形貌性的对象,它的属性一样寻常都是这一类事物都有的属性,这类对象一样寻常用蓝色来体现。
2. 案例先容

接下来,我们通过一个电贸易务场景,来先容一下怎样通过四色模子举行建模,该案例来自InfoQ的文章(添加参考文献)。 [参考]:https://www.infoq.com/articles/domain-color-modeling/
用户故事:
现在假想你是一家在线电子书店的COO。忽然有一天,有一位顾客向你投诉,说他订购的书少了一本,而且代价算错了,他多给了钱。在你允许理赔之前,你须要查对一下这位顾客说的是否属实。那么这个时间你须要知道什么样的信息才气做出精确的判断呢?
简单来说,你须要知道这位顾客订购了那些册本,付了多少钱以及书店到底为这个顾客递送了那些册本。不幸的是,由于科技不敷发达,你无法直接驾驶时间呆板回到从前去亲眼看看发生了那些事。但荣幸的是,你并不须要这么做,你只须要看看这位顾客的订单,和网银的付出纪录以及你们书店交给EMS的快递单存根,就应该知道这些信息了。
从上面这个故事,我们可以看到:任何的业务事故都会以某种数据的情势留下足迹。我们对于事故的追溯可以通过对数据的追溯来完成。正如上面这个故事里,你无法回到从前去看看到底发生了什么,但是却可以在票据的基础上,肯定程度的还原当局势变发生的场景。当我们把这些数据的足迹按照时间序次分列起来,我们险些可以清晰的推测出这个在过往的一段时间内到底发生了那些变乱。
为什么这些业务数据具备可追溯性(tracibility)呢?由于这些数据都是我们关键业务流程执行的结果(如图8-15所示),比如订单是我们业务的起点,而快递存根是我们业务的尽头。正是这些数据在支持你运营体系的关键流程的执行结果。
除了上面谁人非常的例子(投诉),对于任何一笔正常的经济往来,我们都须要知道:
1)如果我付出一笔资金,那么我的权益是什么?
2)如果我收到一笔资金,那么我的使命是什么?
而这些标题都须要业务体系捕捉到相应的足迹才气够答复。以是企业的业务体系告急的目的之一,就是纪录这些足迹,并将这些足迹形成一条有用的追溯链。
这些足迹通常都具有一个故意思的特性,即它们都是Moment-interval的(要么是“时间时候”,要么是“时间段”)。发现这些业务关键时候对象就是建模的起点。对于这些对象稍加整理,我们就能得到如图所示的整个范畴模子的骨干。
在得到骨干之后,我们须要丰富这个模子,使它可以更好的形貌业务概念。这时间,我们须要增补一些实体对象。通常实体对象有三类:人-事-物(Party,Place, or Thing)。如图所示:
4.png 在这个基础上,我们可以进一步抽象这些实体事如果加入到各种差别的流程中去的,这时间,我们就须要用到脚色(role),如图所示:
5.png 末了再把一些须要形貌的信息放入形貌对象(description)。如图所示:
如许,我们就得了应用四色建模方法创建的一套范畴模子。扼要回顾一下上面的过程,不难发现我们建模的序次和重点:
1)起首以满意管理和运营的须要为条件,探求须要追溯的事故,大概叫关键业务时候。
2)根据这些须要追溯,探求足迹以及相应的Moment-interval(关键业务时候)对象。
3)探求“关键业务时候”对象附近的Party,Place or thing(人-事-物)对象。
4)从“人-事-物”中抽象出Role(脚色)。
5)把一些形貌信息(Description)用对象补足。
由于在第一步中,我们就将管理和运营目的做为建模的出发点。因此,整套模子现实上是围绕这些“怎样有用地追踪这些目的”而创建的,如许的模子可以包管模子支持企业的运营。
其他文章

DDD在有赞信贷核心体系中的实践
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:45, Processed in 0.201169 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表