声明:大话设计模式读者笔记,原书C#版,后面会以java写案例

1 . 说明

    我们时常在一些技术书中看到这些类图表示,简单的我们还能看懂,有些标记我们很容易混淆。今天首先就简单讲一下

如何看懂UML图

2 . 案列

java uml 为什么 java中uml设计类图画法_实线


    首先你看那个动物矩形框,他就是代表一个列(class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或者行为。

注意前面的符号:+ 表示public,- 表示 private ,# 表示protected

                                                    

java uml 为什么 java中uml设计类图画法_java uml 为什么_02

    然后注意左下角的飞翔,表示一个借口图,与类图的区别主要是顶端有《interface》显示。第一行的接口名称,第二行是接口方法。接口还有另一个表示的方法,俗称棒棒糖表示法,比如如图的唐老鸭就是实现了‘讲人话’的接口。


java uml 为什么 java中uml设计类图画法_实线_03

    类与类之间的关系:空心三角形+实线来表示

   如图:

                                        

java uml 为什么 java中uml设计类图画法_实线_04

    实现接口用空心三角形+虚线

如图:大雁实现了飞翔的接口

                                            

java uml 为什么 java中uml设计类图画法_实线_05

    我们在看企鹅和气候两个类,企鹅是很特别的鸟,会游泳不会飞,更重要的是,他与气候有很大的关联,我们就不去讨论为什么北极没有企鹅了。为什么他们要长途跋涉,总之企鹅需要知道气候的变化,需要了解气候的规律。当一个类‘知道’另一个类的时候,可以关联关系实现箭头来表示。

如图:

                                                

java uml 为什么 java中uml设计类图画法_UML_06

我们继续再来看下大雁与燕群这两个类,大雁是群居动物,每只都是属于一个燕群,一个燕群可以有多只大雁。所有他们之间就满足聚合关系。聚合表示一种弱的‘拥有’关系体现的是A兑现可以包含B对象,当B对象不是A对象的一部分【DPE】(DPE:表示此句摘自设计模式),聚合关系用空心的菱形+实线箭头来表示。

如图:

                                            

java uml 为什么 java中uml设计类图画法_UML_07

    合成(组合)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样,在这里鸟和翅膀就是组合关系,一只鸟有两个翅膀,组合关系用实心的菱形+实线箭头来表示。

如图:

                                            

java uml 为什么 java中uml设计类图画法_UML_08

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

如图:

                                        

java uml 为什么 java中uml设计类图画法_类图_09

是不是看到这也感觉不难嘛?呵呵

这是书上的一段语句:编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果真确就完事了,时常要考虑如何让代码更加简洁,更加容易维护,容易扩展和复用,只有这样才可以真正的得到提高。写出优雅的代码才是真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程,所谓学无止境,其实这才是理解面向对象的开始