软件的本质是解决领域所面临的问题,领域设计是把现实中的领域模型转换成软件中的模型。
什么是领域:我的理解是一个业务活动中的一切事情。
限界上下文:自治的业务模块,有一致的边界,里面的术语定义具有明确的唯一性。
一.3个基本模型:
1.实体 具有连续性和标识性。我们需要持续跟踪管理对象并区分不同的对象时,引入实体的概念。
2.值对象 用来描叙领域对象本身没有标识的对象称为值对象。值对象实例化之后用来表示设计元素。只关心这些元素是什么,不关系他们是谁。
定义值对象并且保持其不变,应该是设计的一条基本准则。只关心模型元素的属性时候,应该将其设计为值对象。
3.service 表示动作和操作。对某项无状态的活动建模,可以将该活动表示为service.
二. 关联
使领域模型变得更加复杂。设计时就需要控制和减少关联,特别是减少双向关联。
1.规定遍历方向, 模型中可遍历的关联
2.设置限定符号,减少多重关联
3.消除不必要关联