设计模式学习起点 UML类图笔记
2014-02-13 00:27
183 查看
UML类图笔记
大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点。UML定义类之间的关系主要有六种:泛化关系、实现关系、依赖关系、关联关系、聚合关系和组合关系。下面分别学习这几种关系。
>>泛化关系(Generalization)
使用带空心三角形的实线表示。汽车与SUV之间为泛化关系:
泛化关系相当于面向对象中的继承关系。最终代码中,泛化关系表现为继承非抽象类。
>>实现关系(Emlpementation)
使用带空心三角形的虚线表示。最终代码中,实现关系表现为继承抽象类。
”车”为一个抽象概念,在现实中并无法直接用来定义对象;只有指明具体的子类(汽车还是自行车),才可以用来定义对象:
>>依赖关系(Dependency)
使用带箭头的虚线表示。依赖是一种最弱的横向关系。假设A类的变化引起了B类的变化,则称B依赖于A。表现在代码上依赖关系一般有如下三种情况:
A类是B类中(某个方法)的局部变量。
A类是B类中某个方法的参数。
A类向B类发送消息,从而影响B类变化。
>>关联关系(Association)
使用实线表示(可带箭头)。乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系;
从依赖——>关联——>聚合——>组合,可以认为是联系逐渐加强的,组合关系最强调依赖。
>>聚合关系(Aggregation)
使用带空心棱形的实线表示。聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成。
>>组合关系(Composition)
使用带实心棱形的实线表示。比如公司由多个部门组成;
相比聚合关系来说,组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;例如, 公司不存在了,部门也将不存在了,
但是聚合关系的依赖性较弱,部门不在了,员工依然存在。
>>一个类图关系的典型示例
以下这个类图,类之间的关系是我们需要关注的:
车的类图结构为<<abstract>>,表示车是一个抽象类;
它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;
小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示;
小汽车与发动机之间是组合关系,使用带实心箭头的实线表示;
学生与班级之间是聚合关系,使用带空心箭头的实线表示;
学生与身份证之间为关联关系,使用一根实线表示;
学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;
[b]整理自 看懂UML类图和时序图[/b]
相关文章推荐
- 设计模式学习起点 UML类图笔记
- 设计模式学习--装饰者模式(Decorator Pattern)
- 设计模式 学习资料总结
- 设计模式系列学习四:原型模式(Prototype)
- 跟JBPM学习设计模式之简单工厂模式
- OpenCV 2 学习笔记(12): 算法的基本设计模式<3>:单例模式(Singleton pattern)
- 设计模式学习笔记——抽象工厂(Abstract Factory)模式
- 设计模式学习笔记——责任链(Chain of Responsibility)模式
- HeadFirst 设计模式学习笔记6--命令模式
- 设计模式学习之单件模式(Singleton)
- 设计模式C++学习笔记之十八(Visitor访问者模式)
- 【知了堂学习笔记】_Java中设计模式之单例模式的学习
- 设计模式的学习之路--模板方法设计模式
- 设计模式学习总结(10) 享元模式
- 设计模式学习-单件模式
- 设计模式学习第一讲
- [转]Java设计模式学习心得
- java设计模式学习 (1)命令模式
- java学习笔记:面向对象编程之工具类的创建与单例设计模式
- 设计模式学习笔记--迭代器模式