依赖关系

假设B类的变化引起了A类的变化,则说明A类依赖于B类。
依赖关系通常表现为下面三种情形:

  • B类是A类中的(某中方法的)局部变量;
  • B类是A类方法当中的一个参数;(大多数情况)
  • B类向A类发送消息,从而影响B类发生变化;

在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。
依赖关系

泛化关系(继承关系)

泛化关系有三个要求:

  • 子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
  • 子类中除了与父类一致的信息以外,还包括额外的信息;
  • 可以使用父类的实例的地方,也可以使用子类的实例;

在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。
泛化关系

实现关系

实现接口定义,属于泛化关系的一种
在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。
实现关系

关联关系

和关系数据库中的一对多,一对一和多对多一样,这些关系就是通过A类与B类将对方的对象作为成员属性表示的
在UML类图设计中,关联类A指向被关联类B的带箭头实线表示单向关联,使用双箭头或者不使用箭头表示双向关联,在关联的两端可以标注关联双方的角色和多重性标记。
关联关系

常见标记及含义:

0..1:0个或1个实例
0..*:对实例个数没有限制
1:只能有1个实例
1..*:至少一个实例

聚合关系

属于关联关系的一种,表示的是整体和部分的关系,整体与部分可以分开。是一种弱“拥有”关系。
具体表现为A类的成员属性中有B类对象,但是这个B类对象可以不在A类创建对象时创建,两个对象的生命周期是不一致的。
在UML类图设计中,聚合关系以空心菱形加实线箭头表示。
聚合关系

组合关系

属于关联关系的一种,也是整体与部分的关系,但是整体与部分不可以分开.是一种强“拥有”关系。
具体表现为A类的成员属性中有B类对象,但是这个B类对象必须在A类创建对象时创建。
在UML类图设计中,组合关系以实心菱形加实线箭头表示。
组合关系

总结

其实类之间的关系就只有三种:依赖关系(函数参数)泛化关系(继承)关联关系(类成员属性)

参考链接