UML类图的关系
多态
泛化(Generalization)
【定义】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为
【UML表示】:带三角箭头的实线,箭头指向父类
【代码表现】:A类 extends B类
public Class Tigger
extends
Animal{
实现(Realization)
【定义】:是一种类与接口的关系,表示类是接口所有特征和行为的实现
【UML表示】:带三角箭头的虚线,箭头指向接口
【代码表现】:A类 implements B接口
public Class Course
implements
Goods{
依赖(Dependency)
【定义】:是一种使用的关系,即一个类的实现需要另一个类的协助
【UML表示】:带箭头的虚线,指向被使用者
【代码表现】:局部变量、方法的参数或者对静态方法的调用
关联
下面的三种关系从语法上是没有区别的。只是在语义是做区分。
关联(Association)
【定义】:是一种拥有的关系。类的地位还是平等的。
【UML表示】:带普通箭头的实心线,指向被拥有者
【代码表现】:成员变量
注意事项:
- 通常情况下关联是双向的,在使用的时候会转成单向。转成单身的原则:以业务关注点高的类为起点,关联另一个类。
聚合(Aggregation)
【定义】:是整体与部分的关系,且部分可以离开整体而单独存在,部分可以多个
整体使用。类有上下层的关系。
【UML表示】:带空心菱形的实心线,菱形指向整体
【代码表现】:成员变量
组合(Composition)
【定义】:是整体与部分的关系,但部分不能离开整体而单独存在,部分只能被一个
整体使用。类有上下层的关系。它们的生命周期是:同生共死
,即如果整体消失了,那么局部也会消失。
【UML表示】:带实心菱形的实线,菱形指向整体
【代码表现】:成员变量
UML类图的关系的更多相关文章
- UML类图常见关系总结
Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realizat ...
- 设计模式之UML类图六大关系辨析【2】
六大关系:继承(extends).实现(Realization).依赖(use-a).关联(association).聚合(has-a).组合(强聚合)(Composition). 类与类之间的强弱关 ...
- UML类图六种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization):继承的关系,实线带三角形箭头,指向父类. 实现(Realization):实现的关系,虚线带三角形箭头,指向接口. 关联( ...
- 总结 一下UML 类图的关系
1,实线三角 表示 泛化 是一种继承关系,它指定了子类如何特化父类的所有特征和行为 2,虚线三角 表示 实现 是一种类与接口的关系,表示类是接口所有特征和行为的实现 3,空心菱形 表示 聚合 是整 ...
- UML 类图的关系
1. 关联关系 1.1 单向关联 . public class ClassA { private ClassB bVar; } public class ClassB { //... } 1.2 ...
- 我对uml类图关系的理解
uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- UML类图关系全面剖析
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
- UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...
随机推荐
- WinForm菜单和工具栏
菜单和工具栏: 1.MenuStrip - 顶部菜单栏分割线:1输入- 2.右键插入 |SpearTOR 快捷键设置:每一个项右键属性的最下面可以设置快捷键不管选项隐藏还是菜单隐藏,快捷键都管用 2. ...
- CSS的Display属性可能的值
none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline-block 行内块元素.( ...
- Oracle中添加新用户并赋予权限
--创建一个新用户NewUser 并设置密码为1 create user NewUser identified by 1; --为该用户赋予权限 grant connect , Resource to ...
- 模式的混合-我們真的需要一次一次的讀配置嗎-MultitonPrototypeFactoryMethod
我們真的需要一次一次的讀配置嗎 通過配置文件,我們其實極大地優化了代碼的結構,很多易變的元素都可以通過配置來修訂. 配置文件是一個文件,那麼使用的時候不可避免的涉及到IO操作. 在內存不值錢的今天,我 ...
- Learn Spring Framework(continue update...)
Part I. Overview of Spring Framework The Spring Framework is a lightweight(轻量级的) solution and a pote ...
- jquery子元素选择器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Apache+Mod_Python配置
我其实不是个适合做编程的人,因为喜欢折腾,不喜欢日复一日的重复同样的事情.感觉挺适合做网管(运维)的. 经常在摆弄一些小众的程序员不怎么会关心的东西,不走寻常路.有时也挺纠结的,折腾这些东西的过程中, ...
- mybaits注解
基本的增删改 @Insert("insert into t_user values(null,#{username},#{password},#{account})") @Dele ...
- 说说web 2.0生态圈的那些事
先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?” 官方的解释是这样的: Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内 ...
- mysql批量插入数据的基类
自己设计的一个mysql数据库批量添加数据的基类.用于批量向mysql数据库添加数据,子类实现起来很简单,自测性能也还不错. 1.基类实现-BatchAddBase using System.Coll ...