我所理解的OOP——UML六种关系

  • 最近由于经常给公司的小伙伴儿们讲一些OOP的基本东西,每次草纸都被我弄的很尴尬,画来画去自己都乱了,有时候也会尝试使用UML表示类之间的关系,但UML从毕业后就再也没接触过了,经常会被小伙伴儿们指出继承应该是实线,组合菱形是实心的。。。,好尴尬,终于痛定思痛系统学习一下。

UML定义的关系主要有:泛化、实现、依赖、关联、聚合、组合,这六种关系紧密程度依次加强,分别看一下

泛化

概念:泛化是一种一般与特殊一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在程序中是通过继承类实现的。比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类。

表示方法:空心三角形箭头的实线,子类指向父类

实现

概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述

表示方法:空心三角形箭头的虚线,实现类指向接口

依赖

概念:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,在程序中一般表现为类A中的方法需要类B的实例作为其参数或者变量,而类A本身并不需要引用类B的实例作为其成员变量。

表示方法:虚线箭头,类A指向类B。

关联

概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,在程序中被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量

表示方法:实线箭头,类A指向类B

聚合

概念:聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分;

表示方法:尾部为空心菱形的实线箭头(也可以没箭头),类A指向类B

组合

概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,只能从语义级别来区分。

表示方法:尾部为实心菱形的实现箭头(也可以没箭头),类A指向类B

时间: 2024-07-30 21:33:15

我所理解的OOP——UML六种关系的相关文章

UML类图中的六种关系

UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的. 在逻辑设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计的工作量. 下面介绍UML中六种关系: 1. 泛化(Generalization) 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在java中用来表示继承的关系. 表示:用实线空心三角箭头表示. 2. 实现(Realization) 概念:

UML的六种关系

UML定义的关系主要有:泛化.实现.依赖.关联.聚合.组合,这六种关系紧密程度依次加强,分别看一下 泛化 概念:泛化是一种一般与特殊.一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展.在程序中是通过继承类实现的.比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类. 表示方法:空心三角形箭头的实线,子类指向父类 实现 概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述 表示方法:空心三角形箭头的虚线,实

UML基本关系

UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言.UML的定义包括UML语义和UML表示法两个元素. UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法.最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件 架构层次,已经被验证有效.统一建模语言(UML)是一种模型化语言.模型大多以图表的方式表现出来.一份典型的建模图表通常包含几个块或框,连接线和作为模型附 加信息之

设计模式学习---UML常见关系的实现

一.UML基本构造 UML的基本构造含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象:关系把事物结合在一起:图聚集了相关的事物. 二.UML中关系 UML 中关系描述的是:类与类, 类与接口, 接口与接口之间的关系.UML中的关系主要包括: 泛化(generalization) 

UML中关系的分类及其概念——总结备忘

UML中关系分类: 依赖:依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义. 关联:关联是类与类之间的联接,它使一个类知道另一类的属性和方法. 聚合:聚合是一种特殊类型的关联,它描述了整体和部分的结构关系. 组合:组合是关联的一种,是比集合关系强的关系. 泛化:泛化(继承)是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素). UML中关系符号及对应的Java代表的含义 依赖关系         关联关系      聚合关系    

HTML与CSS入门——第三章 理解HTML和XHTML的关系

知识点: 1.以HTML创建一个简单网页的方法 2.包含每个网页必须有的所有HTML标签的方法 3.用段落和换行组织页面的方法 4.用标题组织内容的方法 5.HTML.XML.XHTML和HTML5之间的差别 3.1 从一个简单的网页开始: 作者建议:从简单的文本编辑器开始学习,之后再转向可视化工具. 扩展名支持:.htm以及.html 如.jsp,.asp,.php之类的文件类型使用超出了HTML范围的服务器端技术,需要专门的服务端支持.比如Apache服务器 3.2 每个XHMTL网页必须有

类图中的六种关系

一.首先来罗列一下这六种关系都有什么 1.泛化(Generalization) 2. 实现(Realization) 3. 关联(Association) 4. 聚合(Aggregation) 5. 组合/合成(Composition) 6. 依赖(Dependency) 各种关系的强弱顺序: 泛化 = 实现 > 组合/合成 > 聚合 > 关联 > 依赖 有些版本将泛化和实现统称为一般化关系 二.详细说一下这六种关系 1.泛化(Generalization) [泛化关系]: 是一种

【UML】详解六种关系

UML中包含六中关系,分别是:关联(Association).聚合(Aggregation).组合(Composition).泛化(Generalization).依赖(Dependency).实现(Realization) 一. 1关联关系(Association) 关联关系表示两个类之间存在某种语义上的联系.例如,一个人为一家公司工作,一家公司有许多办公室.我们就认为人和公司.公司和办公室之间存在某种语义上的联系. 关联关系提供了通信的路径,它是所有关系中最通用.语义最弱的.在UML中,用一

UML类图中的六种关系及实例【补充】

·继承和接口都比较常见,通过继承子类可以直接使用父类的(public,protected属性以及方法:而实现了Speakable接口的Person类必须定义其所有方法,包括speak()): ·依赖指的是某个类进行初始化或者实现特别的方法时,必须依赖其他特定对象:如上面例子中人必须依赖water和oxygen; ·组合跟聚合很容易搞混.但是好好理解一下还是不难区分的:上面例子中意思是教师(人)由手.脚组成(当然你还可以加上五官),而聚合指的是一个“大类”中包含多个一样的“小类”,比如一个班级有多