[转帖]UML类图关系图解
UML类图关系图解
https://www.cnblogs.com/TvvT-kevin/p/9357339.html
一、类结构
在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,以此放置类的名称、属性和方法。

其中,
- 一般类的类名用正常字体粗体表示,如上图;抽象类名用斜体字粗体,如
User;接口则需在上方加上<<interface>>。 - 属性和方法都需要标注可见性符号,
+代表public,#代表protected,-代表private。 - 另外,还可以用冒号
:表明属性的类型和方法的返回类型,如+$name:string、+getName():string。当然,类型说明并非必须。
二、类关系
类与类之间的关系主要有六种:继承、实现、组合、聚合、关联和依赖,这六种关系的箭头表示如下
1.关联关系(Association)
关联关系:属于结构关系,对象与对象之间的关系

1 class Man
2 {
3 public Car car;
4 }
5 class Car
6 {
7
8 }


class Studen
{
public Grade grade;
}
class Grade
{
public Student student;
}

1 class ClassA
2 {
3 public ClassA classA;
4 }
0..*:表示另一个类的一个对象与该类的零个或多个对象有关系
m..n:表示另一个类的一个对象与该类最少有m个最多有n个对象有关系
这里值得注意的是:有*的关联性关系就有数组
2.依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。
大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
依赖关系是一种“使用”关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
所以我们一般用到的3种方式
(2)将一个对象作为参数传入类的方法,比如 :public void A(Car car);
(3)在一个类里面调用静态对象的方法,比如 Car.Move();

1 class Driver
2 {
3 public Driver(Car car)
4 {
5 car.Move();
6 }
7 }
8
9 class Car
10 {
11
12 public void Move(){
13 }
14 }

3.聚合关系(Aggregation)

1 class Car
2 {
3 public Gasoline gasoline;
4 //构造注入
5 public Car(Gasoline gasoline)
6 {
7 this.gasoline = gasoline;
8 }
9
10 //属性注入
11 public Gasoline Gasoline
12 {
13 get { return gasoline; }
14 set { gasoline = value; }
15 }
16 }
17
18 class Gasoline
19 {
20
21 }

这里注意的是:通过构造函数注入;通过属性注入;
4.组合关系

1 class Car
2 {
3 public Wheel wheel;
4
5 public Car()
6 {
7 //实例化
8 wheel = new Wheel();
9 }
10 }
11
12 class Wheel
13 {
14
15 }

5.泛化关系(Generalization)

1 public class Subclass : Base
2 {
3 }
4
5 public class Base
6 {
7 }

6.实现关系(Realization)
实现关系:这个是属于接口之间继承的关系

1 class Subclass : IBase
2 {
3 public void Move()
4 {
5 }
6
7 }
8
9 interface IBase
10 {
11 void Move();
12
13 }

[转帖]UML类图关系图解的更多相关文章
- UML类图关系图解
一.类结构 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,以此放置类的名称.属性和方法. 其中, 一般类的类名用正常字体粗体表示,如上图:抽象类名用斜体字粗体,如User:接 ...
- 图解六大UML类图关系
在学习UML类图的过程中,UML类图关系是必须要掌握的问题,UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.下面对其定义和表示方法逐一说明. UML类图关系简介 依赖(Dependen ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...
- UML类图关系大全
UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法.在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...
- UML[1] UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)(转)
转自:http://blog.csdn.net/zhaoxu0312/article/details/7212152 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是 ...
- UML类图关系大全【转】
UML类图关系大全 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设 ...
- UML类图关系(转,添加了实例)
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Associati ...
- 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...
- UML类图关系(继承、泛化、实现、依赖、关联、聚合、组合)
继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者 ...
随机推荐
- javascript实现blob加密视频源地址
一.HTML代码: <video id="my-video" class="video-js" playsinline controls preload= ...
- 一入 Java 深似海【目录】-----------------------------------------【目录】
[目录] 一.计算机相关知识 1. 2. 3. 二.Java 基础语法 1.Java 语言概述 2.数据类型 & 变量与常量 & 注释 3.运算符 4.流程控制语句 之 顺序结构 5. ...
- Vue.js最佳实践--VueRouter的beforeEnter与beforeRouteLeave冲突解决
用Vue做应用管理系统,通常会在离开某个页面的时候,需要检测用户是否有修改,询问用户需要不需要保存之类的需求 这时候,在读VueRouter文档:组件内的守卫 的时候,发现beforeRouteLea ...
- QT绘制B样条曲线
² 贝塞尔曲线 贝塞尔曲线是通过一组多边折线的各顶点来定义.在各顶点中,曲线经过第一点和最后一点,其余各点则定义曲线的导数.阶次和形状.第一条和最后一条则表示曲线起点和终点的切线方向. ² B样条 ...
- CTF-代码审计(1)——parse_str()变量覆盖
题目连接:http://222.18.158.226:7000/iscc.php 考点:parse_str()变量覆盖 代码: PHP知识点: 1.parse_url() 参照网址:https://w ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- PHP使用PhpAnalysis进行分词
1.介绍 PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便. 下载地址:http://www.phpbone.com ...
- 运用软链接,解决NBU默认安装目录空间不足
建立软链接实例: 例如 /usr 剩余空间5G,/opt剩余空间100G 提前在通过如下命令在/opt 目录下创建openv文件夹 mkdir -p /opt/openv 然后进入 /opt/open ...
- NGUI里的sprite和label有白色的边框
问题描述:NGUI里的sprite和label有白色的边框,而原图一切正常 如图: 解决方案: 给Sprite 边缘左右更增加1,这样拉伸的时候就忽略了左右1的位置,图片就不会显示白色边框了
- JMeter5.1开发SMTP协议接口脚本
jmeter可以测试发邮件和读取邮件. 发送邮件 上图部分解释: Server:邮件发送服务 Port:发邮件端口,不加密25,加密465,如果是465端口,Security settings 需要选 ...
