UML基本介绍
UML图
- 用例图
- 静态结构图:类图、对象图、包图、组件图、部署图
- 动态行为图:交互图(时序图和协作图)、状态图、活动图
类间关系
依赖关系
只要是在类需要用到对方,那么他们之间就存在依赖关系,如果不存在用到的类,无法通过编译
- 类的成员变量
- 类中方法的返回类型
- 类中方法接收的参数类型
- 方法中使用到
class B{
private C c;
public C getC(){
return c;
}
}
class C{
}
class A{
private B b;
public C getC(){
return b.getC();
}
}
这里就表示A依赖B和C,B依赖C
泛化关系
泛化关系实际上就是继承关系,它是依赖关系的特例
class B{
}
class A extends B{
}
这里A泛化(继承)了B
实现关系
实现关系实际上就是A实现了B中抽象的方法,它是依赖关系的特例
interface B{}
class A implements B{}
这里A实现了B
关联关系
关联关系实际上就是类与类之间的联系,他是依赖关系的特例
关联具有导航性:即双向关系和单向关系
关系具有多重性,如1表示一个,0…表示0个或多个,“0,1”表示0个或者一个,“n,m”表示n到m个都可以,m…表示至少m个
class B{
}
class A{
private B b;
}
这是单向关联
class B{
private A a;
}
class A{
private B b;
}
这是双向关联
聚合关系
聚合关系表示的是整体和部分的关系,整体和部分可以分开,聚合关系是关联关系的特例,所以它具有方向性和多重性(类中某个属性,可以为null,也可以通过set方法来设置值,则表示聚合)
class A{
private B b;
public void setB(B b){
this.b = b;
}
}
这里B聚合于A
组合关系
组合关系也是整体和部分的关系,但是整体和部分不可以分开,因为整体是由部分组成的,不可或缺,(类中某个属性,有非空默认值,或者该值在构造器中赋值,表示组合关系)
class A{
private B b = new B();
}
这里B组合于A