设计模式(一):UML类图
0.前言
这是开号以来第一篇关于学习心得的文章,这也是设计模式系列的开篇。相信写过面向对象软件的人对设计模式都不陌生,那么设计模式是什么呢?引用美国建筑师Christopher Alexander的一句话:模式描述了在我们周围不断重复的问题,以及该问题的解决方案的核心。简单来说,就是之后学到的23种设计模式,每一种模式都是对一个场景问题的描述以及解决问题的方案。
设计模式是今年年初学的,学习的目的也是为了能够提升自己代码的复用性和灵活性。在学习过程中,了解到了各个设计模式解决问题的侧重点以及自身所存在的缺陷,更重要的是学习到前人解决实际场景问题时的思路。
总的来说,设计模式更像是武侠小说里《九阳真经》这样的内功心法,需要从更高层次以及编码过程中去领悟,切勿生搬硬套。
在整个学习过程中,主要是参考了三本书:
1、《设计模式(可复用面向对象软件的基础)》
2、《大话设计模式》
3、《Head First设计模式》
建议初学者可以先看《大话设计模式》,这本用了比较生动有趣的例子来描述设计模式,让人看了不易发懵,是居家旅行必备良药
好的,下面就正式进入学习之旅。
1. UML类图
在开始接触设计模式之前,先来了解一下UML类图。
UML全称为统一建模语言(Unified Modeling Language)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言【来自百度百科】。UML类图就是使用UML来构建类与类或类与接口的关系 。
1.1 类图基础属性
1.2 类与类之间的关系
常见的关系:
①泛化(Generalization)
②实现(Realization)
③关联(Association)
④聚合(Aggregation)
⑤组合(Composition)
⑥依赖(Dependency)
1.2.1 泛化
表示:①类与类之间的继承关系;②接口与接口的继承关系
表示方法:
1.2.2 实现
表示:类对接口功能的实现
表示方法:
1.2.3 依赖
表示:①两个对象,当一个对象负责构造另一个对象;②两个对象,当一个对象依赖另一个对象的服务
表示方法:
1.2.4 关联
表示:一个对象的实例与另一对象的一些特定实例存在固定的对应关系
表示方法:
1.2.5 聚合
表示:A对象和B对象一种弱的“拥有”关系(‘has-a’),A对象可包含B对象,但B对象不是A对象的一部分,两个对象具有各自的生命周期
表示方法:
1.2.6 组合
表示:A对象和B对象一种强的”拥有“关系(‘contains-a'),体现严格的部分和整体关系,且两者生命周期一样
表示方法:
2. 结语
以上就是关于UML类图的简单介绍,当然关于UML的内容远远不止这些,感兴趣的读者可以自己找资料了解一下,这里就不多赘述。以上制作类图的软件为StarUML软件制作。