UML流程图

  • Post author:
  • Post category:其他




UML入门实例



符号的理解

这里面‘+’ 代表 public

‘-’代表 private

‘#’ 代表 protected

[] 代表可缺省的

字段的表示方式:

– name : String[=?]

修饰符 参数名称 : 参数类型[ = 默认值]

方法的表示方式:

+ study(String name): String

修饰符(参数列表): 返回值的参数类型

在这里插入图片描述



关联方式



1. 单向关联

通过一个实心箭头,包含参数的类指向被包含的类

在此实例当中Customer 中包含 Address类

但是在Address类中并没有包含Customer类的构造或者方法

那么这个单向引用的关系就可以用单向关联符号进行关联

在这里插入图片描述



2. 双向关联

双向关联就是多对多的关系,

一个顾客可以购买多个商品,

一个商品可以被多个顾客所购买。

一个老师可以教多个学生,

一个学生也可以被多个老师教。

一个权限可以关联多个菜单,

一个菜单也可以被多个权限所关联。

这种关系就可以用双向关联的符号进行标识: 即: 不带箭头的实现。

在这里插入图片描述



3. 自关联

自己关联自己:

当前对象可以保存下一个对象的内存地址,

这一点可以使我们便于 增加和删除新对象,

链表就是一个很典型的例子。

符号:通过一个实心箭头自己指向自己:

从上往右进行指向。

在这里插入图片描述



关系梳理



1. 聚合关系

聚合关系的本质就是,成员指向一个整体,(小的指向大的)

小的这个类被作为大的的成员变量存在着

连接方法:部分 空心菱形箭头 指向 整体

在这里插入图片描述



2. 组合关系

如果说聚合关系不那么强烈的话,即 大学离了某一个老师也不会停止运转,而组合关系他们之间的联系就比较紧密了。

如果你的少了嘴巴,那么这个整体的构成就不完整。

我们要按照一般对象进行相关的定义:

比如说: 电脑少了主板

理发店少了推子

等等。

关联方法: 部分 的 通过 实心菱形箭头指向 整体

在这里插入图片描述



3. 依赖关系

依赖关系就是一个类的方法 去 调用另一个类的实例

这是一种最小耦合的关联方式

比如说我们要去吃饭,但是我们要去吃哪一种饭。

这里可以通过创建一个食物类型的类来对具体某一种饭进行封装。

然而我们只需要在吃饭这个方法当中去调用封装食物的这个类就行。

连接方式: 调用方 虚线箭头 指向 被调用方

在这里插入图片描述



4.继承关系

众所周知: 封装 继承 和 多态 是java的三大特性

那么 继承的好处有哪些呢?

它不同于刚刚的依赖关系,它是一个高耦合的体现。

就向以下的实例: 如果不通过继承的方法那么

Teacher 类 和 Student 类都需要去 写两个共有的属性 即:name & age

有了继承之后我们就可以把多数类重复的成员变量,和具有相同参数/返回值的方法进行一个抽离,让他们同时去继承一个父类。

我们只需要根据不同子类的具体实现来重写他们的方法即可。

连接方法: 子类 空心箭头指向 父类

在这里插入图片描述



5.实现关系

实现关系 就是 接口和实现类的关系

接口可以多实现:即一个接口可以有多个实现类

接口可以继承多个接口: 即一个实现类只要继承了一个实现多个接口的接口就能实现多个接口的方法。也可以通过实现多个接口来实现多个接口的方法。

但是接口有什么好处呢?

从两方面来简单的说明一下:

扩展性: 如果我们在原有的基础上进行系统功能的扩展,那么我们只需要重新创建一个接口,让需要扩展的业务类进行接口的实现。

现实中的例子: 键盘usb接口 :没有哪个厂商是把usb焊死在电脑上的,那么我们如果某个牌子的键盘不好用,完全可以更换一个更适合自己的键盘。

维护性:我们就不必要对原来的代码进行大动干戈,如果接口不好用的话我们随时可以进行删除,也便于修改。

连接方法: 实现类 虚线空白箭头 指向 接口

在这里插入图片描述



版权声明:本文为IT12345666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。