设计模式之基础篇UML(类图)

在博文开始之前,还请大家原谅我的懒惰,这段时间一边忙着找工作,一边忙着几个项目的维护和增加功能,每天上完班回家都很疲惫,导致了博客一直没有更新。

今天面试了一家外企 Garmin 公司,事先也没好好研究算法和数据结构,结果可想而知,8 个题目全是算法和数据结构和设计模式。看到二叉树我都懵了,早就忘记一空了,只有一个有关观察者模式的题目,对于设计模式我经常听过,你要让我说个所以然,我还是浑的。为了一扫心中的阴霾,决定回家好好研究数据结构和算法以及设计模式,那么我就从设计模式学习起。

申明:本文有什么不对的地方还请指出,万分感谢。

设计模式类图

封装,继承,多态是面向对象编程的三大特性,设计模式使得程序更加灵活,容易修改,并且易于复用。记得刚开始接手项目的时候,经常把业务逻辑和界面显示写到一起,经常被老大骂得狗血喷头。那个时候不知道为什么要分开写,写到一起多么省事啊。后来老大给我们分析,随着业务的增大,维护起来将是一场灾难。

随着编程的深入,我发现代码当中随处体现着设计模式的身影,学习设计模式之前,我们先来看看类图,你时常在一些技术书中看到类图的表示,简单的还可以看得懂,有些标记你就会比较混淆,那么一起来加深印象。

类图示例

设计模式之基础篇UML(类图)_第1张图片

接着我们来具体看一看UML的具体表示。

我们看到 “动物”的矩形框,它表示一个类(Class),类图分为三层,第一层表示类的名称;第二层表示类的特性,通常就是字段和属性;第三层是类的操作,通常是方法或行为。注意第二层,三层前面的符号,‘+’表示 public,‘-’表示 private,‘#’表示 protected

设计模式之基础篇UML(类图)_第2张图片

接口

设计模式之基础篇UML(类图)_第3张图片

接口有两种表示方式,第一种顶部有 <>显示,第一行是接口名称,第二行是接口方法;另一种是帮帮糖表示法,唐老鸭实现了‘讲人话’的接口。

继承

设计模式之基础篇UML(类图)_第4张图片

鸟类继承自动物类,继承关系用的是空心三角形+实现来表示。

关联

设计模式之基础篇UML(类图)_第5张图片

企鹅类关联气候类,企鹅需要‘知道’气候的变化,需要‘了解’气候的规律。当一个类‘知道’另一个类的时,它们之间存在‘关联(association)’关系。关联关系用的实线箭头来表示。

聚合

设计模式之基础篇UML(类图)_第6张图片

大雁与雁群这两个类,大雁是群居动物,每只大雁属于一个雁群,一个雁群有多只大雁,它们之间存在弱的拥有关系。那么它们就满足关联关系(Aggregation)。聚合表示一种弱的‘拥有’关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分。雁群包含大雁,但大雁不是雁群的一部分。聚合关系用空心菱形+实线箭头来表示

合成

设计模式之基础篇UML(类图)_第7张图片

翅膀是鸟的一部分,鸟由翅膀、其他躯干合成(组合)而成。合成(Composition)是一种强的‘拥有’关系,体现了部分与整体的关系,它们拥有相同的生命周期。合成关系用实心的菱形+实线箭头来表示,两端还有数字‘1’和数字‘2’,这被称为基数,表明这一端类可以有几个实例,这里表示一只鸟有两只翅膀。如果一个类可能有无数个实例,则用‘n’来表示。当然聚合关系也是可以有基数的。

依赖

设计模式之基础篇UML(类图)_第8张图片

动物需要依赖氧气和水才能生存,它们之间存在依赖关系。依赖关系用虚线箭头来表示

相信下次你看到类图,能够很快的理解它们之间的关系。

你可能感兴趣的:(Android)