UML 图解:类图( class diagram )
为什么需要类图建模
类图是面向对象思维的结晶,是以对象的视角描述客观世界的事物:对象是客观世界存在物,占有空间 //例如一个轮子
对外表现特征 //例如 轮子的半径
跟外部发生作用
一个对象可能由更小的对象构成,就像分子里面还有原子;
一个对象可能和另一个对象有link
... ...
现实世界对象很多,人为了描述简洁、便于交流,把几个相似的对象抽象为类:类只存在于人的头脑中、人的语言中,
给类起个名字,反应其所代表的对象实例
用属性描述对象的特征
用方法描述对象的行为
部分对象的类可以组成整体对象的类
一个类可以关联到另一个类
几个类似的类可以抽象为父类
... ...
这么说起来有些抽象,举个例子吧。
当我们面对复杂的逻辑描述的时候,阅读的过程实际上就是理解各种概念和关系的过程,面向对象分析方法和类图可以大大提高理解的效率和精确性。
如下是一个电机控制系统的功能描述,工程师采用文本语言描述如下:
功能描述 |
操作员向控制器发出控制指令,控制器启动电机
|
哪个更好呢?
- 更容易理解
- 更全面
- 更容易被开发人员转化为系统实现。
类图有什么任何UML图都有语义、元素、关系和用途,下面对类图做个列表描述:
图例:领域模型
采用类图可以对问题域进行面向对象分析,分析各种领域对象的属性、方法和关系,建立领域模型(也称之为分析模型),如下是一个领域模型的简化示例:
图例:设计模型贪吃蛇游戏类图
为了让读者看的更形象,采用图例的方式介绍类图的用法,下面是贪吃蛇游戏的设计类图。设计类图与分析类图的不同之处在于考虑了计算机的软件实现环境和开发语言机制,从开发角度给出了解决方案的逻辑视图:
为了实现软件的健壮性,设计类图常常运用设计原则,此例如下:
基于单一职责原则,把Map和Food进行了分离。
基于接口隔离原则,抽象了接口 Movable。
基于依赖倒置原则,把接口Movable置于和Map同样的上层。
类图说明:
如下是基于类图生成的类的说明字典:
如下是基于类图生成的类之间的关系目录:
可以基于类图生成代码,如下是基于类图生成的代码(C++语言)
可以基于类图生成数据模型,然后基于数据模型生成DDL代码。如下是基于类图生成的数据模型:
可以基于数据模型生成DDL代码,如下是基于生成的DDL代码:
说明:本文的模型采用建模工具EA建模、生成代码、生成数据库。
评论 (0人参与)
最新评论