领域模型的概念与其作用概述

领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。概念比较深奥,其实说白了就是我们把基于对业务的理解画成一个类图,并画出这些类之间的关系(面向对象)。

领域模型可以整理业务中的概念以及关系,帮助团队中的成员对业务的理解保持一致,往后可以指导数据库设计、系统功能设计、指导开发。在整个系统建设周期能起到 上接需求,下承开发 的作用。

那既然领域模型如此重要,我们是不是要在类图中尽可能的展示对象的属性和方法,以便更好的指导后续的开发设计。

恰恰相反,我们在建模的时候不要将注意力集中在属性或行为上,应该摆脱这些细枝末节,抓住领域对象定义的最基本特征,只需要体现对象模型的重要概念。如果细节过多很容易产生 ”只见树木,不见森林“ 的现象。

下面我们看一个简化后的报销业务的领域模型,加深一下印象。

完成一个领域模型建模,主要需要做两件事:

  1. 定义类的关键属性和关键行为;
  2. 定义类与类之间的关联关系。

定义类的属性和行为

定义类的属性和行为比较简单,用设计工具拖一个class即可,这里只需要注意一下属性和行为的访问权限。


  1. – 表示private   
  2. # 表示protected  
  3. ~ 表示default,也就是包权限   
  4. + 表示public 

定义类与类之间的交互关系

在UML类图中,定义了六种类之间的关系,他们分别是:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。关系比较多,而且有些还比较相近,比如聚合和组合,接下来我们逐渐讲解:

泛化(Generalization)

介绍:

泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系。

图例:

使用 空心三角形+实线 表示。

代码实现:


  1. public class A { 
  2.    
  3.  
  4. public class B extends A { 
  5.    

实现(Realization)

介绍:

实现(Realization)表示一个class类实现interface接口(可以是多个)的功能。

图例:

使用 空心三角形+虚线 表示。

代码实现:


  1. public interface A { 
  2.    
  3.  
  4. public class B implements A { 
  5.    

聚合(Aggregation)

介绍:

聚合(Aggregation)表示一种弱的 ‘拥有’ 关系,即has-a的关系,体现的是A对象可以包含B对象,B类生命周期可以不依赖A类对象的生命周期, 也就是说可以单独销毁A类对象而不影响B类对象,比如课程与学生之间的关系。

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章