UML类图

UML类图是用来描述在面向对象设计程序的时候,各种类,接口等本身的信息和之间的联系。

一些快速参考的资料:UML类图及类图之间的关系UML理解记忆

UML类之间的关系

依赖关系

A 类在代码内部临时调用 B 类(通过局部实例变量,方法参数传入,或者直接调用静态方法)这种不持有 B 类,但是需要用到 B 类的关系,称为依赖关系,A 类依赖于 B 类。而依赖是单方面的依赖,

比如 Person 类中的 call(Phone phone) 方法需要传入 Phone 类的实例,然后内部调用实例 phone 的方法完成通话,那么就说 Person 类依赖于 Phone 类。

依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类,关系表示如下图(请勿参考图中例子):

关联关系

关联关系表示两个类有一定的联系,比如 Person 和 Address 之间,人拥有自己的住址,住址地方有人的存在。两者就是相互关联的关系。关联可以是单方面的关联,也可也是互相关联。被关联的类会成为关联者的一个属性。

单向的关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类,而双向的关联可以用带两个箭头或者没有箭头的实线来表示。关系表示如下图(请勿参考图中例子):

聚合关系

当 A 类是由 B 类聚合而成的,并且 B 类可以独立于 A 类,那么称 A 和 B 的关系为聚合关系。比如雁群和大雁的关系,雁群由任意个大雁组成,而大雁可以独立于雁群,就成为大雁聚合成为了雁群。老师们聚合到了学校里面,即使学校倒闭,也可以独立存在,不会随着学校一起消亡。(被聚合个体实例创建在外部,聚合个体时通过外部传入被聚合实例,聚合体销毁的时候,被聚合体实例在外部仍然有引用,不会被回收)

聚合关系可以用带空心菱形的实线来表示,菱形指向整体,关系表示如下图(请勿参考图中例子):

组合关系

组合关系需要一个类由若干个类真正组合而成,比如人是由四肢、躯干、头组成的。少了头,人就不完整了,没有了人,头也无法单独存在。这种极为紧密的关系被称为组合关系,实现这样的部分对象不能脱离整体对象的存在实现方法就是在整体的内部创建部分。这样整体一旦被销毁,部分会因为没有外部引用指向它而也被销毁。

组合关系用带实心菱形的实线来表示,菱形指向整体,关系表示如下图(请勿参考图中例子):

泛化关系

泛化:变得宽泛,指由个别到一般或由具体到抽象。

也就是说,泛化关系指的是父类和子类之间的继承关系。

泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类,关系表示如下图(请勿参考图中例子):

实现关系

实现关系是接口和实现类的关系。

实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口,关系表示如下图(请勿参考图中例子):

记忆理解图