不安分的黑娃
踏踏实实,坚持学习,慢慢就懂了~

UML中类关系表示与Java代码中的对应关系

1. 类的UML表示法

image

上图中,Employee 类有两个String类型的私有属性和一个返回值为String类型public 方法 getName();

2. 类的关联关系

关联(Association)关系是一种结构化关系,用于表示一类对象与另一类对象之间有联系。

在代码实现上,通常将一个类的对象作为另一个类的成员变量。

通常用 带箭头的直线表示关联关系.

  • 双向关联
    image
  • 单向关联
    image
  • 限定关联

限定关联通常是从较大集合中选择一个实例。
用代码实现限定关联时,成员变量通常是Map,而Map的键就是限定符。

image

  • 自关联

image

  • 聚合关系

聚合(Aggregation)关系表示整体与部分的关联关系。聚合关系用带空心菱形的直线表示。

在用代码实现聚合关系时,成员对象通常作为构造方法、Setter方
法或业务方法的参数注入整体对象中。

image

  • 组合关系

组合(Composition)关系也表示类之间整体和部分的关联关系,但
是在组合关系中,整体对象可以控制成员对象的生命周期,一旦整体对
象不存在,成员对象也将不存在,成员对象与整体对象之间具有“同生
共死”的关系。在UML中,组合关系用带实心菱形的直线表示。

在用代码实现组合关系时,通常在整体类的构造方法中直接实例化
成员类。成员对象域整体对象有同样的生命周期,也就是要“共生死”,
这也是组合和聚合的主要区别。

image

3. 类的依赖关系

依赖(Dependency)关系是一种使用关系。
大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

依赖关系通常通过3种方式来实现:

  1. 将类的对象作为另一个类中方法的参数。
  2. 一个类的方法中将类的对象作为局部变量。
  3. 一个类的方法中调用另一个类的静态变量。

4. 类的泛化关系

泛化(Generalization)关系也称为继承关系,用于描述父类与子类之间的关系。父类称为基类或超类,子类称为派生类。
在UML中,泛化关系用带空心三角形的直线来表示。
在代码实现时,我们使用面向对象的继承机制来实现泛化关系。

5. 接口与实现关系

在UML中,类与接口之间的实现关系通常是用带空心三角形的虚线来表示。

参考资料

  1. 《代码精进之路:从码农到工匠》
posted on 2021-08-07 22:10  不安分的黑娃  阅读(141)  评论(0编辑  收藏  举报