UML类图与对象图

时间:2023-02-04 13:24:29

UML类图与对象图

基本概述

    类图(Class Diagram)应该是使用的最多的一种UML图。其语法并不复杂,可能只需要几天时间就能掌握,但是其背后的面向对象(OO)思想却是需要日积月累才能深刻理解。

 

面向对象的四种常见思想

1OOA(Object-Oriented Analysis 面向对象分析)

2OOD(Object-Oriented Design 面向对象设计)

3OOP(Object-Oriented Programming 面向对象编程)

4OOT(Object-Oriented Technology 面向对象技术)

 

PS:无论是开发人员还是分析人员,这几种思想是必须要掌握的,作为开发人员来说,OO的思想,其深度和延伸内容可谓博大精深,值得花时间去学习。

 

类的概念

    类可以视作一现实事物抽象出的统一的、相似的模型。

 

对象的概念

    对象可以看做是类的具体化,就像模具导出的产品一样。

 

类图

    类图就是描述类与类之间关系的图。

案例:

UML类图与对象图


类图的建模步骤

1、识别出类。

2、识别出类的主要属性。

3、画出类之间的关系。

4、对各类进行分析、抽象、整理。


关联关系

    两个类之间有关系,但又不确定是什么关系,可以用关联关系表达。

UML类图与对象图

UML类图与对象图

PS:关联关系如果出现数量上的对应可以写上数字表示数量,可以用角色关系表示两类分别处于什么角色,单向关联关系表示关联是单向的,只能由关联方找到被关联方。在写代码时,可以将其视作关联类包含了被关联类的一个引用。


包含关系

    包含关系表示一个类包含另一个类。

UML类图与对象图

PS:包含关系分为两种,一种是弱包含关系,叫做聚合,为空心菱形,一种是强包含关系,叫做组合,为实心菱形。一开始可以将所有包含关系视作弱包含,当发现某些关系可以用强包含表示时,才转为强包含关系。


泛化关系

    当一个类是另一个类的子类时,可以使用泛化关系。

UML类图与对象图

PS:泛化关系通常也被称作继承关系,根据类的发现先后关系,如果是由父类导出子类,这样就可以说子类继承父类,如果是由子类导出父类,这样就可以说父类泛化子类。

 

实现关系

    当一个类可以实现某个抽象类时,可以使用实现关系。

UML类图与对象图

PS:标识接口与类之间的关系用的比较多。

 

依赖关系

    当一个类需要另一个类协助时,可以用依赖关系表示。

UML类图与对象图


递归关系

    当某类使用或者包含自己时,可以使用递归关系。

UML类图与对象图


三角关系

    当发现两个类之间的关系不能用一般关系来表示,这时候可以用关联类来表示关系,这也就是三角关系。

UML类图与对象图

PS:可以通过思考属性是否恰当来识别出关联类关系,列出两类的关键属性之后,思考这些属性的属性值是不是由该类本身就可以确定,如果不能两类之间就可能有关联类关系。

 

小结

UML类图与对象图


对象图

    如果说类图代表了一类事物,那么对象图就代表着某个具体的事物。

UML类图与对象图