[编程思想进行曲]UML的整理与介绍

1.前言

在具备一定的编码规模经验以后,我曾经想过一个问题:我们每天都用别人的开源框架来快速迭代开发业务产品,在熟悉框架以后,大部分的工作都是业务代码的编写,那么如何能够写出优美的代码?如何能够把更多的设计模式融入代码?如何能够重新造一个优雅的轮子?抱着学习的态度,我想从UML制图开始,写一个编程思想的系列文章,使用UML来制作一些知名开源项目的软件设计图,从而学习吸收它们的编程思想。

2.UML的介绍

2.1出现背景

早期面对众多的编程语言,在讨论一个软件工程时,因为没有一个标准,所以交流起来非常不方便。因此有些人提出了面向对象的描述语言,而 Booch 则是最早提出面向对象的软件开发方式的倡导者之一,他发明了Booch方法,与此同时,又出现了很多类似的面向对象的描述语言。最后为了将它们都统一起来, Booch、Rumbaugh和Jacobson 三个人发明了UML( Unified Modeling Language ) 统一建模语言 。

2.2简介

UML使用自己的标准描述,将复杂的软件工程以面向对象的思维方式,可视化得拆分为了一张张软件设计图。目前得版本已经发展到了UML2.0。UML大致可以分为两个部分:UML模型和UML图,如下图所示:

UML模型通过使用UML图来进行模型描述

3.UML类图

3.1属性

3.2关系

类图的常见关系有:继承、聚合、组合 、依赖、关联 ,而接口或者模板类则包括:实现和泛化。由于模板类的语法并不在所有编程语言中通用,比如C++支持模板类,而PHP中则没有模板类的概念,所以这里就不一一例举了。

3.2.1继承

用空三角箭头表示

Man继承自Person

3.2.2聚合

聚合表示一个整体由部分组成,比如人群和人的关系,用空心菱形箭头表示

Persons由Person聚合而来

3.2.3组合

组合和聚合在语法层面上比较相似,区别就是组合有强依赖性,如果没有组合方,那么就没有被组合方。

Company由department组合而来

3.2.4依赖

用虚线表示对象间的依赖关系

学生打篮球需要依赖篮球

3.2.5关联

使用实线表示关联关系

顾客和订单相关联

3.2.6实现

接口实现使用棒棒糖表示法

4.参考

网络资料

https://sparxsystems.cn/resources/tutorial/
如无特殊说明,文章均为本站原创,转载请注明出处。如发现有什么不对的地方,希望得到您的指点。

发表评论

电子邮件地址不会被公开。 必填项已用*标注