前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UML — — 类图目录

UML — — 类图目录

作者头像
幺鹿
发布2018-08-21 15:37:10
8520
发布2018-08-21 15:37:10
举报
文章被收录于专栏:Java呓语Java呓语

前言

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了;

类图基本概念

类图的3个基本组件:类名、属性、方法。

类名、属性、方法

类之间的关系

依赖关系的强弱程度依次为:实现 = 继承 > 组合 > 聚合 > 关联 > 依赖;

实现关系(realize)

实现关系用一条带空心箭头的虚线表示;

实现

泛化关系(generalization)

继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:(..是..)

泛化关系用一条带空心箭头的直接表示;如下图表示(A继承自B);

泛化关系(generalization)

依赖关系(dependency)

对象之间最弱的一种关联方式,是临时性的关联。依赖关系是用一套带箭头的虚线表示的;如下图表示A依赖于B;他描述一个对象在运行期间会用到另一个对象的关系;

依赖关系(dependency)

关联关系(association)

对象之间的强关联方式,是长期性的关联。关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A;

关联关系(association)

聚合关系(aggregation)

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;

聚合关系(aggregation)

组合关系(composition)

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;

组合关系(composition)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.02.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 类图基本概念
  • 类之间的关系
    • 实现关系(realize)
      • 泛化关系(generalization)
        • 依赖关系(dependency)
          • 关联关系(association)
            • 聚合关系(aggregation)
              • 组合关系(composition)
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档