🏆 原文:06|领域建模实践(下):领域建模还有什么其他技巧?
包
在 UML 中,可以用包来表示模块
包的内部可以包含实体,也可以包含另外的包。
在 UML 中,任何需要对元素进行分组的场合,都可以使用包。
有了模块,我们就可以从两个层面理解模型:宏观层面、微观层面
宏观层面
宏观层面只关心模型中有哪些模块,以及模块间的依赖关系,不关心模块内部的细节。为了达到这个目的,我们可以画出更宏观的包图。像下面这样:
依赖关系
带箭头的虚线:在 UML 中表示依赖(dependency)关系,箭头由依赖方指向被依赖方
—–> 被依赖方
所有模块都依赖租户管理。这是因为,为了将不同租户的数据区别开来,每个模块中的实体都要说明自己是哪个租户的
依赖关系与关联关系的区别
关联:表示的是数据上的导航关系
例如,当我们说组织和员工之间具有一对多关联的时候,就意味着,由组织可以找到下面的员工,由员工也可以找到所属的组织。
依赖:如果 A、B 两个元素,有了 A 才能有 B,那么就可以说 B 依赖于 A
例如:
- 羊肉串依赖于羊
- 摩托车依赖于轮子、发动机
- 万物依赖于太阳
可以认为关联是一种特殊的依赖关系,但依赖还有别的形式,比如说项目管理模块依赖于组织管理模块,两者之间未必有直接的数据导航关系,可能只是项目管理调用组织管理,获得需要的数据。
微观层面
深入到模块内部,了解实体和关联等等的细节。
通过这种分而治之的方法,我们可以在一定程度上管理复杂性,解决认知过载的问题。