《设计模式 系列》- UML类图
2017-12-19 00:00
253 查看
前言
本文主要包含两部分。UML语法,类与类之间的6种关系。它们分别为:依赖,关联,聚合,组合,继承,实现。他们的耦合度依次增强。
一、UML语法
设置权限:+ 代表 public 公共,- 代表 private 私有,# 代表 protected设置属性:变量名在前,变量类型在后。如-car:Car
设置方法:方法名在前,后跟参数(参数名在前,类型在后),返回值在方法后面。如+driver(car:Car):void
二、依赖(Dependence)
定义假设A类的变化引起了B类的变化,则说名B类依赖于A类。这种关系非常弱,具有临时性。
项目P依赖xx.1.1.jar包,也可以依赖xx.1.2.jar包。
图例:
UML图,由依赖方指向被依赖的一方。
依赖项可以随着被替换掉,与依赖方的生命周期无关
使用
class Person{ //通过形参方式发生依赖关系 public void drive1(Car car) { car.run(); } //通过局部变量发生依赖关系 public void drive2() { Car car = new Car(); car.run(); } //通过静态变量发生依赖关系 public void drive3() { Car.run(); } }
三、关联(Association)
定义对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。一般是长期性。
图例
在UML类图中,通常将一个类的对象作为另一个类的属性。
通常依赖项是被依赖方的属性。
使用
class Driver { private Car car = new Car(); public void drive() { car.run(); } } class Car { public void run(){} }
四、聚合(Aggregation)
定义表示的是整体和部分的关系,整体与部分 可以分开。
图例
聚合关系中作为成员变量的类一般使用 set 方法赋值
使用
class Person{ private Car car = null; public void drive() { car.run(); } public void setCar(Car c){ car = c; } } class Car { public void run(){} }
五、组合(Composition)
定义整体与部分的关系,但是整体与部分不可以分开。部分和整体具有统一的生存期。
图例
关联、聚合、组合只能配合语义,结合上下文才能够判断出来
使用
class Person{ private Hair hair; private Eye eye; public void(Hair hair) { this.hair= hair; } public void(Eye eye) { this.eye= eye; } public void breathe() { } } class Hair{} class Eye{}
六、继承(Generalization)
定义继承表示类与类 (或者接口与接口) 之间的父子关系。
也称泛化关系,“is-a-kind-of”关系
图例
使用
class Person{ public void eat(){} public void sleep(){} } class Chinese extends Person{ } class American extends Person{ }
七、实现(Implementation)
定义是用来规定接口和实线接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
耦合度最强,如果实现了接口,就要实现接口中所有的方法。
图例
使用
interface Cloneable { } class ArrayList implements Cloneable{ }
相关文章推荐
- 【设计模式系列】UML类图图示样例
- 设计模式系列(一)序言
- 设计模式笔记系列
- 深入理解JavaScript系列(37):设计模式之享元模式
- JAVA系列-设计模式-组合模式
- Android设计模式系列--工厂方法模式
- 一看就懂系列之 php设计模式(二)
- Android设计模式系列--工厂方法模式
- 【面向对象语言系列】关于C#设计模式,你需要知道的事
- 简单工厂模式(未完成)——小鸟学习设计模式笔记系列
- 子慕谈设计模式系列(一)
- 极速理解设计模式系列:4.抽象工厂模式(Abstract Factory Pattern)
- PHP设计模式系列 - 观察者模式
- 【系列索引】结合项目实例 回顾传统设计模式 打造属于自己的模式类系列
- java设计模式系列--单例模式
- 设计模式学习系列笔记(builder&nbs…
- 好书整理系列之-设计模式:可复用面向对象软件的基础 5.5
- 23种经典设计模式UML类图汇总
- 设计模式探索系列之Bridge模式
- 设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)