企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## UML类图与对象图 ### 基本概述 类图(Class Diagram)应该是使用的最多的一种UML图。其语法并不复杂,可能只需要几天时间就能掌握,但是其背后的面向对象(OO)思想却是需要日积月累才能深刻理解。   ### 面向对象的四种常见思想 1、OOA(Object-Oriented Analysis 面向对象分析) 2、OOD(Object-Oriented Design 面向对象设计) 3、OOP(Object-Oriented Programming 面向对象编程) 4、OOT(Object-Oriented Technology 面向对象技术)   PS:无论是开发人员还是分析人员,这几种思想是必须要掌握的,作为开发人员来说,OO的思想,其深度和延伸内容可谓博大精深,值得花时间去学习。   ### 类的概念 类可以视作一现实事物抽象出的统一的、相似的模型。   ### 对象的概念 对象可以看做是类的具体化,就像模具导出的产品一样。   ### 类图 类图就是描述类与类之间关系的图。 案例: ![](https://box.kancloud.cn/2016-02-25_56cec6c1f12af.jpg) ### 类图的建模步骤 1、识别出类。 2、识别出类的主要属性。 3、画出类之间的关系。 4、对各类进行分析、抽象、整理。 ### 关联关系 两个类之间有关系,但又不确定是什么关系,可以用关联关系表达。 ![](https://box.kancloud.cn/2016-02-25_56cec6c20b824.jpg) ![](https://box.kancloud.cn/2016-02-25_56cec6c21ea6c.jpg) PS:关联关系如果出现数量上的对应可以写上数字表示数量,可以用角色关系表示两类分别处于什么角色,单向关联关系表示关联是单向的,只能由关联方找到被关联方。在写代码时,可以将其视作关联类包含了被关联类的一个引用。 ### 包含关系 包含关系表示一个类包含另一个类。 ![](https://box.kancloud.cn/2016-02-25_56cec6c22ea7b.jpg) PS:包含关系分为两种,一种是弱包含关系,叫做聚合,为空心菱形,一种是强包含关系,叫做组合,为实心菱形。一开始可以将所有包含关系视作弱包含,当发现某些关系可以用强包含表示时,才转为强包含关系。 ### 泛化关系 当一个类是另一个类的子类时,可以使用泛化关系。 ![](https://box.kancloud.cn/2016-02-25_56cec6c2465c8.jpg) PS:泛化关系通常也被称作继承关系,根据类的发现先后关系,如果是由父类导出子类,这样就可以说子类继承父类,如果是由子类导出父类,这样就可以说父类泛化子类。   ### 实现关系 当一个类可以实现某个抽象类时,可以使用实现关系。 ![](https://box.kancloud.cn/2016-02-25_56cec6c2554b2.jpg) PS:标识接口与类之间的关系用的比较多。   ### 依赖关系 当一个类需要另一个类协助时,可以用依赖关系表示。 ![](https://box.kancloud.cn/2016-02-25_56cec6c264cdc.jpg) ### 递归关系 当某类使用或者包含自己时,可以使用递归关系。 ![](https://box.kancloud.cn/2016-02-25_56cec6c287d9e.jpg) ### 三角关系 当发现两个类之间的关系不能用一般关系来表示,这时候可以用关联类来表示关系,这也就是三角关系。 ![](https://box.kancloud.cn/2016-02-25_56cec6c29d860.jpg) PS:可以通过思考属性是否恰当来识别出关联类关系,列出两类的关键属性之后,思考这些属性的属性值是不是由该类本身就可以确定,如果不能两类之间就可能有关联类关系。   ### 小结 ![](https://box.kancloud.cn/2016-02-25_56cec6c2b411d.jpg) ### 对象图 如果说类图代表了一类事物,那么对象图就代表着某个具体的事物。 ![](https://box.kancloud.cn/2016-02-25_56cec6c2c9574.jpg)