千家信息网

领域模型的概念及作用是什么

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本篇内容介绍了"领域模型的概念及作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!领域模型的概
千家信息网最后更新 2025年11月09日领域模型的概念及作用是什么

本篇内容介绍了"领域模型的概念及作用是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

领域模型的概念及作用

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

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

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

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

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

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

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 定义类的关键属性和关键行为;

  3. 定义类与类之间的关联关系。

定义类的属性和行为

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

- 表示private   # 表示protected  ~ 表示default,也就是包权限   + 表示public

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

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

泛化(Generalization)

介绍:

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

图例:

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

代码实现:

public class A {    }  public class B extends A {    }

实现(Realization)

介绍:

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

图例:

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

代码实现:

public interface A {    }  public class B implements A {    }

聚合(Aggregation)

介绍:

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

图例:

使用 空心的菱形+实线箭头 表示。

代码实现:

public class A {     private B b;     public A(B b){         this.b = b;     } }

组合(Composition)

介绍:

组合(Composition)表示一种强的 ‘拥有’ 关系,即contains-a的关系,体现的是A对象包含B对象,B类生命周期依赖A类对象的生命周期,B类对象不可单独存在,比如鸟与翅膀之间的关系。

图例:

使用 实心的菱形+实线箭头 表示,还可以使用连线两端的数字表示某一端有几个实例。

代码实现:

public class A {     private B b;     public A () {         this.b = new B();     } }

关联(Association)

介绍:

关联(Association)是一种非常弱的关系,包含聚合、组合两种关系。对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。具体到代码层面,如果B类是A类的成员变量,那么B类和A类就是关联关系。

图例:

使用实线箭头表示。

代码实现:

public class A {     private B b;     public A(B b){         this.b = b;     } }

或者

public class A {     private B b;     public A () {         this.b = new B();     } }

依赖(Dependency)

介绍:

依赖(Dependency) 是比关联关系更加弱的关系,包含关联关系。不管是B类对象是A类对象的成员变量,还是A类方法使用B类对象作为参数或者返回值、局部变量,只要B类对象和A类对象有任何使用关系,我们都称他们有依赖关系。

图例:

使用 虚线箭头 表示。

代码实现:

public class A {     private B b;     public A(B b){         this.b = b;     } }

或者

public class A {     private B b;     public A () {         this.b = new B();     } }

或者

public class A {  public void func(B b)         ...     } }

模型简化

严格的UML类图之间的关系拆分的太细,专业要求很高,大大增加了学习成本,而且对于业务沟通,指导后续数据库设计,编程开发没有太大意义。

所以在实际业务建模过程中,我们并不需要严格按照UML类图交互关系来描述业务实体之间的关系,比如我们可以将聚合、组合、关联统统使用关联关系表示,使用实线连接两个实体,并在两侧标记出实例个数即可。

"领域模型的概念及作用是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

对象 领域 模型 之间 业务 关联 代码 概念 图例 属性 组合 周期 实线 行为 设计 作用 生命 箭头 开发 指导 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北屯市众鼎网络技术 网红服务器推荐我的世界 软件开发需要什么科目支持 网站开发代码是放在云服务器上吗 用户相关数据库设计 日本最近的网络安全事件 怎么知道自己的服务器域名是多少 计算机网络安全试题与答案 桂林电子大学网络安全 计算机网络技术的职业证书 姜堰区环保网络技术哪家好 吃鸡登录服务器遇到问题咋回事 荣泰昌天津网络技术有限公司电话 网络安全保障管理策略 人才数据库有什么好处 数据库读数据怎么读 普陀区散射网络技术供应 以下哪种登陆运维服务器 十堰市讯联网络技术服务 石狮专业软件开发 服务器缺少参数是什么意思 杭州有度信息 网络安全 斗破苍穹手游服务器共通吗 宜兴海航软件开发销售 碑林区网络安全宣传周 国际服完美世界服务器 陕西软件开发基地 我的世界服务器服务商 很多客户号怎么导入数据库 普陀区散射网络技术供应
0