首页 > 其他分享 >UML建模中的 依赖、关联、聚合、组合 这四个语义比较难区分。

UML建模中的 依赖、关联、聚合、组合 这四个语义比较难区分。

时间:2024-05-24 15:25:50浏览次数:30  
标签:关系 依赖 聚合 语义 建模 关联 生命周期 偶然性 UML

详细的UML建模参考如下:
UML建模

依赖:Uses a。这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如类B作为参数被类A在某个method方法中使用;

关联:Has a。这种拥有关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量

聚合:Own a。聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分,大雁和雁群;

组合:is a part of。这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,如大雁和翅膀。

依赖

依赖关系表示一个类依赖于另一个类的定义。依赖关系中,可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。一般而言,依赖关系在语言中体现为
局部变量、方法的形参,或者对静态方法【被依赖对象的静态方法,如何上面的B类静态方法】的调用。

在这里插入图片描述

关联

关联关系中,体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友,夫妻关系;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是双向的,也可以是单向的。关联关系一般使用成员变量来实现

在这里插入图片描述

聚和

在这里插入图片描述

组合

是关联关系(contains-a)的一种,是比聚合关系强的关系。整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除。而且,多个整件不可以同时间共享同一个部件。
在这里插入图片描述

	class Car {   
		// 使用成员变量形式实现组合  
	    Engine engine;   
	    
	    // 使用构造方法给成员变量赋值
	    public Car () {
	    	this.engine = new Engine();
		}
	    // 使用方法参数形式实现聚合  
	    public void run(){   
	        engine.run();   
	    }   
	}  

在这里插入图片描述

在这里插入图片描述

标签:关系,依赖,聚合,语义,建模,关联,生命周期,偶然性,UML
From: https://blog.csdn.net/u013400314/article/details/139163911

相关文章

  • 计算机语义网络SCI期刊,中科院2区,对国人友好!
    一、期刊名称JournalofWebSemantics二、期刊简介概况期刊类型:SCI学科领域:计算机科学影响因子:2.5中科院分区:2区三、期刊征稿范围《网络语义学杂志》是一本跨学科期刊,基于对各个学科领域的研究和应用,有助于开发知识密集型和智能服务Web。这些领域包括:知识技术,本......
  • 关于 图论建模 的一些技巧
    分层图思想分层图在最短路中经常用到。直观上讲,就是将一个图复制k倍,互相是平行的,即互不影响,分层图两两之间会有决策边相连。这就等价于要在一个图上进行k次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。一般将决策前的状态和决策后的状态之间连接一条权值......
  • 农村高中生源转型期提升学生二次函数建模能力的课堂探究
       通过结合具体的数学问题,引导高中生深入分析问题,有效地构建求解问题的数学模型,可以使学生逐步掌握数学问题求解的基本思路以及模型建构的方法与注意事项。但是离开了反复训练,无法从根本上提升高中生的数学建模能力。因此,在平时的高中数学教学中,教师要注意结合数学教学的内......
  • EPAI手绘建模APP工程图注释
    9) 注释a. 直线a) 选择直线注释,长按,打开直线注释元素编辑器。图 324 工程图注释编辑器-直线b) 可以修改的参数包括i. 起点坐标。ii. 终点坐标。b. 圆a) 选择圆注释,长按,打开圆注释元素编辑器。图 325 工程图注释编辑器-圆b) 可以修改的参数包括i. 圆心......
  • vscode plantuml
    创建文件test.wsd@startumlBob->Alice:hello@endumlplantumlhttps://pdf.plantuml.net/1.2020.23/PlantUML_Language_Reference_Guide_zh.pdfplantumlideahttps://blog.csdn.net/qq_52302333/article/details/131341626plantuml......
  • EPAI手绘建模APP工程图模板、投影、剖切、局部放大、中间线、符号、填充
    (4) 工程图① 模板1) 模板包括可以选择修改的模板字段和不可选择修改的固定元素。2) 选择模板字段长按,打开模板字段编辑器,填写模板字段内容,点击工程图空白地方,更新模板字段。图 314 工程图元素编辑器-模板字段② 工程图元素1) 投影a. 选择投影,长按,打开投影元素编......
  • EPAI手绘建模APP工程图工具栏
    (2) 工程图工具栏① 模板1) 打开模板选择页面。图 306 工程图模板列表2) 模板选择页面列出了可以使用的工程图模板类型,每个模板规定了工程的大小、方向、规格、标准、常用字段等。也包括一些空白模板,此时可以通过添加表格等注释自定义工程图样式。3) 选择需要的模板......
  • EPAI手绘建模APP工程图顶部工具栏
    7、工程图图 302 工程图工程图包括顶部常用工具栏、右侧工程图工具栏、左侧模型列表栏、中间的工程图。(1) 常用工具栏① 删除,选中场景中工程图元素后,删除。可以选择多个工程图元素同时删除。② 设置,打开工程图设置页面,修改工程图参数。图 303 工程图设置-1图 3......
  • EPAI手绘建模APP动画、场景、手势操作
    (15) 动画 图 299 动画控制器① 打开动画控制器。播放动画过程中,切换场景观察视角时,自动停止播放。动画编辑参见常用工具栏-更多-动画动画编辑器部分。② 关闭动画控制器。③ 设置动画参数:设置动画总帧数;这只帧率,帧率越大,播放速度越快;设置是否循环播放,如果设置了,动画......
  • 如何写好Simulation证明(一): 语义安全
    密码学中很多证明需要用到Simulation,尤其是ZK,MPC等等.对于初学者来说,涉及Simulation的证明往往不容易理解,更别说自己独立证明,所以有必要学习一下如何写这样的证明.文章主要参考YehudaLindell的讲义:Howtosimulateit.1.Introduction什么是Simulation?中文翻译......