类图 (class Diagram)

  在UML类图中,类与类之间的关系分别有:依赖<关联<聚合<组合、继承、实现。

  1、依赖关系(Dependency)用带箭头的虚线表示。一个事物的改变可能影响到使用它的另一个事物,即表示一个事物使用另一个事物时使用依赖关系。如:作为传参、作为局部变量、调用静态方法。

  2、关联关系(Association)用带箭头的实线表示。一类对象与另一类对象之间的联系,在Java中通常表示一个类的对象作为另一个类的成员变量(属性)。在UML类图中关联有四种形式:双向关联、单向关联、自关联、多重性关联。

  (1)双向关联的类的实例,互相持有对方的实例,如数据库管理员(DBA)可以管理多个数据库(DB),因此DBA将DB的实例作为自己的属性;而同时每个数据库(DB)都被某位管理员(DBA)进行管理,因此DB也将DBA的实例作为自己的属性。建议用不带箭头的实线表示,并在两头写明两者之间的关系。

  (2)单向关联是一方持有另一方的实例。

  (3)自关联的箭头指向自己,其属性就是该类本身,如链表结点类中,每个结点持有下一结点的实例。

  (4)多重性关联表示两个对象在数量上的对应关系,有:1..1、0..*、1..*、0..1、m..n。

  例如一个网页可能没有可点击按钮,也可能有多个按钮,但是该页面中的一个按钮只属于该页面。

  3、聚合关系(Aggregation)用带箭头的实线,实线起点为空心菱形表示。部分对象是整体对象的一部分,但是部分对象可以脱离整体对象独立存在,也即整体对象并不控制部分对象的生命周期。从代码实现上来讲,部分对象不由整体对象创建,一般通过整体类的带参构造方法或Setter方法或其它业务方法注入到整体对象。如图书馆与图书、雁群与大雁之间的关系。

  4、组合关系(Composition)用带箭头的实线,实线起点为实心菱形表示。整体对象控制成员对象的生命周期,一旦整体对象不存在了,成员对象也即随之消亡。从代码实现上看,一般在整体类的构造方法中直接实例化成员类,并且除整体类对象外,其它类的对象无法获取该对象的引用。如人与脚、汽车与轮胎之间的关系。

  5、继承关系(Generalization,也称泛化关系)用实线空心三角形表示。在Java中用关键字extends实现。

  6、实现关系(Realization)用虚线空心三角形表示。在Java中用关键字implements实现。

 

posted @   HanselHuang  阅读(1830)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示