vlambda博客
学习文章列表

设计模式(一):UML类图

0.前言

       这是开号以来第一篇关于学习心得的文章,这也是设计模式系列的开篇。相信写过面向对象软件的人对设计模式都不陌生,那么设计模式是什么呢?引用美国建筑师Christopher Alexander的一句话:模式描述了在我们周围不断重复的问题,以及该问题的解决方案的核心。简单来说,就是之后学到的23种设计模式,每一种模式都是对一个场景问题的描述以及解决问题的方案。

       设计模式是今年年初学的,学习的目的也是为了能够提升自己代码的复用性和灵活性。在学习过程中,了解到了各个设计模式解决问题的侧重点以及自身所存在的缺陷,更重要的是学习到前人解决实际场景问题时的思路。

       总的来说,设计模式更像是武侠小说里《九阳真经》这样的内功心法,需要从更高层次以及编码过程中去领悟,切勿生搬硬套。

       在整个学习过程中,主要是参考了三本书:

        1、《设计模式(可复用面向对象软件的基础)》

        2、《大话设计模式》

        3、《Head First设计模式》

       建议初学者可以先看《大话设计模式》,这本用了比较生动有趣的例子来描述设计模式,让人看了不易发懵,是居家旅行必备良药设计模式(一):UML类图

       好的,下面就正式进入学习之旅。


1. UML类图 

       在开始接触设计模式之前,先来了解一下UML类图。

       UML全称为统一建模语言(Unified Modeling Language)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言【来自百度百科】。UML类图就是使用UML来构建类与类或类与接口的关系 。


设计模式(一):UML类图


1.1 类图基础属性

设计模式(一):UML类图

设计模式(一):UML类图


1.2 类与类之间的关系
常见的关系:

①泛化(Generalization)

②实现(Realization)

③关联(Association)

④聚合(Aggregation)

⑤组合(Composition)

⑥依赖(Dependency)


1.2.1 泛化

表示:①类与类之间的继承关系;②接口与接口的继承关系

表示方法:

设计模式(一):UML类图

1.2.2 实现

表示:类对接口功能的实现

表示方法:

设计模式(一):UML类图

1.2.3 依赖

表示:①两个对象,当一个对象负责构造另一个对象;②两个对象,当一个对象依赖另一个对象的服务

表示方法:

设计模式(一):UML类图

1.2.4 关联

表示:一个对象的实例与另一对象的一些特定实例存在固定的对应关系

表示方法:

设计模式(一):UML类图

1.2.5 聚合

表示:A对象和B对象一种弱的“拥有”关系(‘has-a’),A对象可包含B对象,但B对象不是A对象的一部分,两个对象具有各自的生命周期

表示方法:

1.2.6 组合

表示:A对象和B对象一种强的”拥有“关系(‘contains-a'),体现严格的部分和整体关系,且两者生命周期一样

表示方法:

2. 结语

      以上就是关于UML类图的简单介绍,当然关于UML的内容远远不止这些,感兴趣的读者可以自己找资料了解一下,这里就不多赘述。以上制作类图的软件为StarUML软件制作。