UML类图中的几种关系总结
UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)、实现(Realization)等。
依赖(Dependency)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmJveWZlaXl1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
class B {
public void doSth() {
System.out.println("do sth in class b.");
}
} //
class A {
public void doSthInA(B b) {
b.doSth();
// others
}
}
泛化(Generalization)
就是通常所说的继承关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向被继承的类。
// 形状
class Shape { } // 方形继承自Shape
class Square extends Shape{ }
实现(Realize)
public interface Runnable {
public abstract void run();
} // 实现Runnable接口
public class Thread implements Runnable {
@Override
public void run() {
// do sth
}
}
关联(Association)
class Book { } //
class People {
// 学生能够独立于老师而存在
List<Book> mBooks = new ArrayList<Book>();
}
聚合(Aggregation)
关联仅仅是表示单纯的依赖 ),部分能够独立于总体而存在。
UML中用带空心菱形头的实线
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmJveWZlaXl1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
class Wheel {
} class Car {
List<Wheel> mWheels = new ArrayList<Wheel>();
}
组合(Composition)
组合是聚合关系的变种,表示元两者之间具有更强的聚合关系,它通常要求总体代表部分的生命周期。
假设是组合关系,部分(个体)不能独立于总体而存在。
UML中用带实心菱形头的实线表示Composition关系。
菱形头指向总体。
class Hand { } class People {
List<Hand> mHands = new ArrayList<Hand>();
}
当中依赖(Dependency)的关系最弱,而关联(Association)。聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的总体与部分关系的关联。而组合是表明总体与部分之间有同样生命周期关系的聚合。
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
參考推荐:
最新文章
- JS高级程序设计笔记一
- Extjs,Git,插件....学习网址
- 第四章 分治策略 4.2 矩阵乘法的Strassen算法
- word20161129
- Sqli-LABS通关笔录-16
- Python 开发轻量级爬虫03
- 菜鸟教程之工具使用(十一)——Eclipse去掉未使用的引用
- CXF之七 传输文件
- iMAC——全新重装Mac系统
- hdu 5014 Number Sequence
- 顶尖大数据挖掘实战平台(TipDM-H8)产品白皮书
- hdu 2757 Ocean Currents(优先队列+bfs)
- 摘记:IIS长时间任务超时处理
- spring mvc中的拦截器小结 .
- HTTP请求和MIME介绍
- zk个人入门学习总结(1)
- ubuntu 16.04 安装 vscode
- django中如何实现分页功能
- 使用Nginx+Uwsgi部署Python Flask项目
- qt 软件打包