设计模式学习(2) UML类图
类:Employee类,包含name,age和email 这3个属性,以及retName、getInfo方法。UML类图是UML中专注于描述系统的静态结构,展示类、接口、协作及它们之间的关系的图形语言。e.g: teacher和student是双向关联,而student和course是单向关联。使用包含类名、属性(filed)和方法(method)且带有分割线的矩形来表示。本身是一套符号的约定,描
·
0.个人感悟
- 凡是名字中带有统一(Unfied)的东西都很牛B,包括某方便面。。
- 工作中常用到UML中的类图和时序图,主要用于需求的详细分析和设计。学好这些,不仅有利于工作表达,也是和国际接轨
- 对于类与类关系表达。个人觉得不用刻意记忆各种箭头,语言到底还是为设计服务的,可以知道这个知识点,用到的时候查阅。建议能熟练使用一个UML工具。
- 类与类之间的关系的理解。其实都是不同程度的依赖关系。然后根据特性分成3大族类,
- 泛化。 面向对象基本概念
- 实现。 面向对象基本概念
- 依赖族。 根据关系由浅到深分为依赖、关联、聚合、组合。
1.概念
Unified modeing language(统一建模语言)是一种用于软件系统分析和设计的语言工具。
本身是一套符号的约定,描述软件模型中各个元素及它们之间的关系。
2.分类
开发工作中最长用的还是类图、时序图。这里把各种图列一下,后面用到再详细补充学习。
- 结构图
- 类图
- 对象图
- 组件图
- 部署图
- 包图
- 符合结构图
- 行为图
- 用例图
- 活动图
- 状态机图
- 时序图
- 通信图
- 交互概览图
- 定时图
3.UML类图
3.1 概念
UML类图是UML中专注于描述系统的静态结构,展示类、接口、协作及它们之间的关系的图形语言。
3.2 类的表示方法
3.2.1 类
使用包含类名、属性(filed)和方法(method)且带有分割线的矩形来表示。
举例: 类 -> 代码 -> 类图
类: Employee类,包含name,age和email 这3个属性,以及retName、getInfo方法
代码:
package uml;
public class Employee {
private String name;
private int age;
private String address;
public void reName(String newName) {
this.name = newName;
}
public String getInfo() {
return this.name + this.age + this.address;
}
}
类图:
3.2.2 属性
可见性 名称 : 类型[ = 缺省值]
说明: 可以给属性设置默认值,比如这里的age属性
可见性符号:
- + : 表示public
- - : 表示private
- # : 表示protected
3.2.3 方法
可见性 方法名称(参数列表)[: 返回类型]
说明:无返回参数的返回类型为void,比如reName方法
3.3 类与类之间的关系
3.3.1依赖 dependency
- 一种使用关系,弱关系
- 大多数表现为参数使用
- 虚线箭头表示
e.g: programmer依赖computer进行coding
3.3.2 关联 association
- 一种引用关系,类之间的联系,有导航性
- 表现为一个类是另一个类的属性。单向关联用实线箭头
- 双向用实线
e.g: teacher和student是双向关联,而student和course是单向关联
3.3.3 聚合 Aggregation
- 关联的强化,整体和部分的关系, 成员是整体的一部分,成员也可以单独存在
- 使用空心菱形 剪头指向整体。
e.g: school和teacher
3.3.4 组合 Coposition
- 聚合的强化,整体和部分,不可分割的一体
- 使用实心菱形指向整体
e.g:body和head
3.3.5 实现 Realization
- 实现关系,接口与实现类
- 空心三角虚线表示
e.g: university和实现类
3.5.6 泛化 Generalization
- 继承关系
- 空心三角实线表示
e.g:fruit和继承类
更多推荐



所有评论(0)