设计模式之前奏(UML类图)

本人菜菜一个,最近一直在博客园游走闲逛,看到了各种技术,各种各种……。便看到了大话设计模式这本书,下了电子版的看了看第一章,感觉相当不错,不仅通俗易懂,而且与实际案例相结合,可就是电子版的,鄙人很少看小说,所以立马在京东下单买了本。就是给力……

看了看书,翻了翻,第一章简单工厂模式最后讲解的是UML类图,以前见到过,但从来没画过,也就是一眼而过。但是又好好看了看书,后面几乎每种模式都会用UML类图来阐述设计模式的整体架构。所以就回过头来好好把第一章最后的UML类图看了一下,在这里进行做一下笔记。

首先看一张完整的UML类图图示样例

第一(类):

这个 "动物"矩形框,它就是一个类(Class)。类图分为三个部分,第一部分显示类的名称,如果是抽象类,则就用斜体来表示。第二部分是类的特性,通常就是字段和属性。第三部分是类的操作,通常是方法或行为。之一前面的符号,"+"表示public,"-"表示private,'#'表示protected.

第二(接口)

它表示一个接口图,与类图的区别主要是顶端有《interface》显示。第一行是接口名称,第二行是接口方法。接口还有另外一种表示方法,俗称棒棒糖表示法,比如图中的唐老鸭就是实现了"讲人话"的接口。

第三继承

类和类、类与接口之间都是继承的关系。继承关系用空心三角形+实线来表示。

第四实现接口

大雁是最能飞的,我让它实现了飞翔的接口。实现接口用空心三角形和虚线来表示。

第五关联

企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是它与气候相关联,它需要知道气候。那么这种关系就是关联。关联关系用实线剪头来表示。

第六聚合

大雁和雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群的,每个雁群都可以有多只大雁。所以它们就满足聚合的关系。聚合表示一种"弱的拥有关系",体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形和实心剪头来表示。

第七合成

"合成"或者叫"组合",是一种强的"拥有关系",体现了严格的部分和整体的关系,部分和整体的声明周期一样。就如上图的鸟和翅膀的关系。一只鸟有两只翅膀。他们之间存在一个基数。关联关系和聚合关系也都是有基数的。如果一个类可能有无数个实例,那么可以用”n“来表示。

第八依赖

动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是一来关系。用虚线剪头来表示。

对于UML类图来说,大体上也就这几种关系,其实也不算难。但是UML类图也不是一学就会的,需要有个慢慢熟练的过程。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HTML5学堂

揭开身份证验证的神秘面纱

正则验证身份证号码 HTML5学堂:曾经一直觉得用正则验证身份证号码是很简单的~但是,当真正挖掘身份证号码的规则之后,才发现,想要写好一个正则验证也没有那么容易...

4345
来自专栏ml

HDUOJ-----4506小明系列故事——师兄帮帮忙

小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/3276...

2897
来自专栏数据结构与算法

Day3上午解题报告

预计分数:100+40+50=190 实际分数:100+40+50=190 T1 https://www.luogu.org/problem/show?pid=...

2935
来自专栏数据结构与算法

BZOJ2152: 聪聪可可(点分治)

聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况...

963
来自专栏程序员互动联盟

【基础编程】侃侃数据结构与算法-扯扯概念

? 为啥扯淡,因为我们开发人员很少用到它,目前流行的android开发有数据结构么?没有,至少你在用api的时候基本上是看不见的。c++有在STL基本容器中s...

39113
来自专栏数据结构与算法

2017.10.1解题报告

---- 预计分数:60+50+0=110 实际分数:60+81+0=144 全场rank13?全校rank1?貌似题很难啊23333 ---- T1...

3689
来自专栏lonelydawn的前端猿区

Node.js力破江苏网警刑侦科推理试题

月前,江苏网警 在微博发布了一套《2018年刑侦科目推理试题》,可谓难倒了诸多英雄好汉,评论区内更是一片皮皮之音。 @二向箔icon: 高考前班主任教过我们,...

3377
来自专栏木东居士的专栏

程序员该如何管理后宫:皇后造更多小人(抽象工厂模式)

2115
来自专栏HansBug's Lab

1112: [POI2008]砖块Klo

1112: [POI2008]砖块Klo Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1245  Solv...

3266
来自专栏C语言及其他语言

OJ系统(ACM/NOI)的基本输入输出教程

在介绍OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内...

51512

扫码关注云+社区

领取腾讯云代金券