从C++谈设计模式:UML类图

UML简介

统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

开发环境

UML建模的设计软件有很多,在 MAC 上首推由韩国公司主导开发 starUML,点击连接即可下载 StarUML 设计软件。该软件有如下优点:

  • 可绘制9款UML图:用例图、类图、序列图、状态图、活动图、通信图、模块图、部署图以及复合结构图等。
  • 语法检验:StarUML遵守UML的语法规则,不支持违反语法的动作。
  • 正反向工程:StarUML可以依据类图的内容生成Java、C++、C#代码,也能够读取Java、C++、C#代码反向生成类图。
  • 支持模式:支持23种GoF模式(Pattern),以及3种EJB模式。

类图

类图是面向对象式的建模。他们一般都被用于概念建模的系统分类的应用程序,并可将模型建模转译成代码。一个类别有三个区域。如下图所示:

  • 最上面是类别名称
  • 中间部分包含类别的属性
  • 底部部分包含类别的方法

成员属性

符号 属性
+ Public
Private
# Protected
/ Derived
~ Package

类间关系

在 StarUML 软件中,类间关系总共定义了八种,如下图所示:

其中接口在 C++ 中没有定义,两种关联关系可以总结为一种,故总共有六种类间关系,下面详细解释:

关系 English 符号 关系描述 备注
关联关系 Association 一条直线表示,带方向表示单向关联 静态关系,与运行状态无关,为强相关关系 代码中体现为成员变量
聚合关系 Aggregation 空心菱形箭头 表示实体对象之间的关系,不强依赖
组合关系 Composition 实心菱形箭头 表示整体由部分构成,强依赖关系 依赖方的存在取决于被依赖方是否存在
依赖关系 Dependency 带箭头的虚线 一个对象在运行期间会用到另一个对象的一种临时关系,不强依赖 代码中体现为类构造方法及类方法的传入参数
泛化关系 Generalization 带空心箭头的实线 继承关系,继承非抽象类
实现关系 Realization 带空心箭头的虚线 继承关系,继承抽象类

参考

  1. 维基百科:统一建模语言
  2. 看懂UML类图和时序图

版权声明

  1. 本文由 Howie Lee 发表,采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。请确保你已了解许可协议,并在 转载 时声明。
  2. 转载请注明来源,本文固定链接:http://www.lifower.com/?p=213

——文章采用PyPoster离线发布,欢迎到GitHub支持原作者!