专栏首页mySoul设计模式-UML关系基础
原创

设计模式-UML关系基础

设计模式-UML关系基础

UML关系基础

类之间的关系

泛化

类在继承中表现为泛化和实现。

继承关系为is-a的关系,两个对象之间用is-a表示为继承关系。

eg,自行车是车,猫是动物。

泛化关系用空心箭头表示

如下图。

A继承自B

用空心箭头表示A继承自B

泛化关系表示为继承抽象类。

抽象类可以继承一个具体的类的。 抽象类可以被实体类继承 抽象类可以被其他抽象类继承

实现关系

实现关系用空心箭头表示。

即指向C++中的抽象类(通过纯虚函数实现),java中的接口,表示实现关系。

即,无法直接定义对象的都被成为抽象类。

即,在上方中A继承自抽象类B

聚合关系

用带空心的菱形箭头的直线表示

A聚合到B上,B由A组成。

聚合关系表示实体对象之间的关系,表示整体由部分构成的语义。

一个部门由多个员工组成。为聚合关系。

与组合关系的区别,不是强依赖关系。即使整体不存在,部分依旧存在。

部门撤销,人员不会消失,依旧存在。

组合关系

组合关系用带实心的菱形箭头表示。

A组成B,B由A组成。

组合关系强调强依赖的聚合关系。

整体不存在,则部分也将不存在。

公司不存在,那么部门也将不存在。

关联关系

关联关系用一条直线表示,描述不同类的对象之间的结构关系。

一种静态关系。

通常与运行状态无关。

用于定义对象之间,天然的,静态的结构。

乘车人和车票属于关联关系,学生和学校属于关联关系。

关联关系默认不强调方向。如果强调方向,则A知道B,但是B不知道A

用成员变量来实现

依赖关系

用带箭头的虚线表示两者之间的依赖关系。

A依赖B,描述一个对象在运行期间会用到另外一个对象的关系。

依赖关系体现在类的构造方法,以及类的方法的传入参数。箭头指向为调用关系。

依赖关系能让对象知道,还能使用对方的方法和属性。

时序图

展示对象之间的交互细节,使用时序图。

时序图有对象,生命线,控制焦点,消息。

www.iming.info

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DOM概述 选取文档元素

    有些html标签会有name元素,区别于id,name属性的值不必是唯一的,多个元素可能存在相同的名字。

    mySoul
  • MyBatis 二级缓存

    映射语句中的select语句将会被缓存, 映射语句中的insert update delete 语句将会刷新缓存

    mySoul
  • window对象(一) 计时器 定位导航 url解析 浏览历史 对话框 消息推送

    一个jQuery作者的写的关于定时器解释,记的顺手订阅一下。John Resig,jQuery之父

    mySoul
  • “以太猫”将于大年初一登录中国,中文名为“迷恋猫”|热点

    镁客网
  • 使用Faster-Rcnn进行目标检测(实践篇)

    原理 上一篇文章,已经说过了,大家可以参考一下,Faster-Rcnn进行目标检测(原理篇) 实验 我使用的代码是python版本的Faster Rcnn,官方...

    GavinZhou
  • 安装ovirt4.2极简教程

    (客户端首先设置controller域名C:\Windows\System32\drivers\etc\hosts)

    虚拟化云计算
  • 通过Tacker将NFV引入OpenStack

    2014年的这个时候,我们还在OpenStack社区中为NFV是否属于OpenStack而争论不休。如今这一争议已经被解决了。OpenStack已经成为NFV讨...

    SDNLAB
  • 获取pheatmap聚类后和标准化后的结果

    pheatmap是简单常用的热图绘制包,可以快速、简单、可定制的绘制漂亮热图。具体见R语言学习-热图简化和免费高颜值可定制在线绘图工具 ImageGP。

    生信宝典
  • 干掉 GuavaCache:Caffeine 才是本地缓存的王

    话说,中间件的选择上,Spring(SpringBoot)一直是业界的风向标。比如Spring一直使用「Jackson」,而没有使用Gson和fastjson。...

    程序猿DD
  • JS示例37-鼠标拖拽

    专注APP开发

扫码关注云+社区

领取腾讯云代金券