精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究。
代码不可能总是在一个文件里,多个代码里的类,总是有关系,用图表直接给出关系,会更容易在全局上掌握类层次和类关系,所以要学习UML类图。
在java的学习过程中,经常会看到一些类图,小编在学习的过程中,经常看到别人用类图来表达自己的想法,因为类图可以清楚的表达类的基本机构和形象的表现类与类之间的结构关系。
但是最初小编并没有太在意类图,看不懂就看不懂呗,一般伴随着类图都有作者的讲述,听描述都能明白作者的意思,并没有太关注类图。但对于一些复杂的类之间的结构关系,听得一头雾水也是常有的事,这个时候类图就起作用了,但首先我们要能够看懂类图中各个符号、图形的作用。
类
在UML中使如何表现类的呢,如下图
我想猜大家也能猜到第一部分是类名,后面俩部分分别是属性和方法,属性值的类型和方法的参数和返回值大家应该都能看出来它表现的形式。但问题是属性和方法前面的符号啥意思,我想聪明的小伙伴应该猜到了,它们就是用来表示可见性的,“+”、“#”、“-”分别对应我们的共有、受保护的、私有。属性和方法下面如果有下划线的话,就表示它们是静态的。
类之间的关系有实现、继承、关联、聚合、组合、依赖,聚合和组合属于特殊的关联关系。
这几种关系所代表的类之间的耦合度由高到低为:继承=实现>组合>聚合>关联>依赖
实现
实现就是我们常用的一个类去实现一个接口,在类图中,用一条虚线加一个空心三角形表示
继承
继承就是一个类继承另一类的功能,同时还能够添加自己的新功能。继承用一个实线加一个空心三角形组成
依赖关系
依赖关系是我们各种关系中耦合程度最低的,就想我们类A中某个方法的参数是类B,这样类B的变化在我们调用类A的这个方法的时候才对类A产生影响。依赖关系用一条虚线箭头表示
关联关系
关联关系相比与依赖关系的耦合度要高,如果A类关联与B类,B类的变化肯定会影响A类,不同于依赖关系那样具有偶然性。关联关系用一条实现箭头表示,在关联的两端可以标注关联双方的角色和多重性标记
聚合关系
聚合是关联关系的一种特例,它体现的是整体与部分的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享,聚合关系以空心菱形加实线箭头表示
组合关系
组合关系提现了整体和部分之间的关系,相比与聚合关系,此时的整体和部分之间是不可分的,整体的声明周期结束也就意味着部分的生命周期结束,组合关系用实心菱形加实线箭头表示
里面,继承和实现有层级关系,容易记住,用好。其它的几个确实容易混淆,要多看多记多查,才能记好。
关联是最常用的实线加箭头,也好记住。