UML:类关系
一、依赖
1、介绍
A类使用到了B类,那就可以描述为A依赖于B。
如果A类没有B类,则无法通过编译
2、UML
3、代码
/**
* 人
*/
public class Person {
/**
* 吃
*/
public void eat(Food food){
System.out.printf("人吃"+food.createFood());
}
}
/**
* 食物
*/
public class Food {
/**
* 创建食物
*/
public String createFood(){
return "食物";
}
}
4、总结
类A依赖于类B:
- 类B是类A的成员属性
- 类B是接收的参数类型
- 类B是方法的返回类型
- 类A方法中使用到了类B
二、泛化
1、介绍
泛化关系实际上就是继承关系,它是依赖关系的特例
2、UML
3、代码
/**
* 图形
*/
public class Graph {
}
/**
* 三角形
*/
public class Triangle extends Graph{
}
4、总结
泛化关系实际上就是继承关系
如果B类继承了A类,那么就可以说B和A存在泛化关系
三、实现
1、介绍
实现关系实际上就是B类实现了A接口。实现是依赖关系的特例
2、UML
3、代码
/**
* 用户接口
*/
public interface UserService {
/**
* 获取用户
*/
void getUser();
}
/**
* 用户接口实现类
*/
public class UserServiceImpl implements UserService{
/**
* 获取用户
*/
@Override
public void getUser() {
}
}
四、关联
1、介绍
关联关系是类与类之间的联系,关联关系是依赖关系的特例
关联关系具有导航性:即双向关系和单向关系
关系具有多重性:
- “1”,表示有且仅有一个
- “0…”,表示0个或多个
- “0,1”,表示0个或一个
- “n…m”,表示n到m个都可以
- “n…”,表示至少n个
2、UML
3、代码
/**
* 人
*/
public class Person {
private IdCard idCard;
}
/**
* 身份证
*/
public class IdCard {
}
/**
* 身份证
*/
public class IdCard {
private Person person;
}
五、聚合
1、介绍
聚合关系表示的是整体和部分的关系,整体与部分可以分开。
2、UML
3、代码
/**
* 电脑
*/
public class Computer {
private Keyboard keyboard;
private Mouse mouse;
public void setKeyboard(Keyboard keyboard) {
this.keyboard = keyboard;
}
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
}
/**
* 键盘
*/
public class Keyboard {
}
/**
* 鼠标
*/
public class Mouse {
}
六、组合
1、介绍
组合关系:也是整体与部分的关系,但是整体和部分不可以分开
2、UML
3、代码
/**
* 人
*/
public class Person {
private Head head;
public void setHead(Head head) {
this.head = head;
}
}
/**
* 头
*/
public class Head {
}