类与类的六种关系与UML图

简介: 类与类的六种关系与UML图

类的关系:泛化(继承) = 实现 > 组合 > 聚合 > 关联 > 依赖

 

泛化:(is-a),类与类、接口与接口的继承关系

实现:指的是一个class类实现interface接口(可以是多个)的功能

关联:A类作为B类的属性样式的存在,即“有”的关系

这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。


分类:

单向关联A类关联B类   Climate:气候

双向关联:A类关联B类,B类关联A类

多重性:

一对一关联:一个学生只能在一个班级里学习

一对多关联:一个学生可以参与多个班级的学习

解决一对多关联的方案是集合和数组


聚合:是比较强的关联关系,整体——部分

部分可以独立存在,所以是比较弱的拥有关系

雁群类——大雁类

组合:是更强的关联关系,部分完全依赖整体存在

整体”负责“部分”的生命周期,他们之间是共生共死的;并且“部分”单独存在没有任何意义,是比较强的拥有关系

大雁类——翅膀类

聚合和组合总结:

聚合类:构造函数中包含了另一个类作为参数。 雁群类(GooseGroup)的构 造函数中要用到大雁(Goose)作为参数传递进来。大雁类(Goose)可以脱离雁群类而独立存在。


组合类:构造函数中包含了另一个类的实例化。 表明大雁类在实例化之前,一定要先实例化翅膀类(Wings),这两个类紧密的耦合在一起,同生共灭。翅膀类(Wings)是不可以脱离大雁类(Goose)而独立存在。


2.信息的封装性不同


  聚合:客户端可以同时了解雁群类和大雁类,因为他们都是独立的。


  组合:客户端只认识大雁类,根本就不知道翅膀类的存在,因为翅膀类被严密的封装在大雁类中。

依赖:(use-a),指一个类A使用到了另一个类B

特性:被使用的B类变化会影响到A类,这种关系是微弱的,偶然的

具体表现: B类作为参数在A类的方法中使用

例如:人与车

关联和依赖:

关联是"has"关系,依赖是"use"关系

A类关联B类,是指B类作为A类的属性存在

A类依赖B类,是指B类作为A类的方法参数存在

依赖关系只在被调用时产生

关联关系是当类实例化的时候即产生,当类销毁的时候,关系结束

相关文章
|
1月前
|
存储 测试技术 开发工具
软考中的UML图、数据流图等二十余种示例
软考中的UML图、数据流图等二十余种示例
333 0
|
12天前
|
数据可视化 测试技术 uml
如果更好的绘制UML图
如果更好的绘制UML图
11 0
|
1月前
|
Java uml
UML之组件图(构件图)
UML之组件图(构件图)
34 0
|
1月前
|
程序员 uml
UML图 | 时序图(顺序、序列图)绘制
UML图 | 时序图(顺序、序列图)绘制
252 0
|
1月前
|
uml
通过简单例子 | 快速理清 UML 中类与类的六大关系
通过简单例子 | 快速理清 UML 中类与类的六大关系
73 0
|
1月前
|
测试技术 uml
UML—浅谈常用九种图
UML—浅谈常用九种图
68 0
|
8月前
|
设计模式 数据可视化 程序员
设计模式概述、UML图、软件设计原则
设计模式概述 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ra
53 0
|
10月前
|
数据可视化 测试技术 uml
UML概述及UML图详解
UML概述及UML图详解
223 0
UML概述及UML图详解
|
10月前
|
uml Python
将python源码自动生成UML图——扩张包Graphviz+Pyreverse
将python源码自动生成UML图——扩张包Graphviz+Pyreverse
424 0
|
11月前
|
测试技术 数据库 uml
UML之旅—九种图
开始我按照自己的思考,将所有的用户、所有的用例都画在了一起,真心的很大、很乱,再加上刚开始画图就有一种抵触的冲动了,就让旁边的师傅给我说了说,她建议我将这些分开