一、宏观导图:

二、细节

1、关联:指的是类与类之间的结构性关系,即整体-部分关系。一般的关联关系中有单向的和双向的。

特殊关联中的,有聚合和组合,其实我更愿意用英文去理解,这些人翻译的让我很恶心。本来这两者的区别很明显的,一经翻译,死活都搞不清楚啥意思了。怎么理解呢?英文的原解释是:

聚合:can be a part of various trians

组合:can belong to one and only one list

我们可以把聚合看做是一个现代的女子。我们都知道火车的零部件都是标准化的器件,当她离开了火车A,她还可以嫁给火车B。而组合呢,就更像古代的女子,忠贞不二,属于且只属于某一个人。

2、依赖:是指各个类之间、对象之间、构件与构件之间的“Using”关系。简单的用一句话来说的话,假设:A使用了B,则说A依赖于B,B的变化将影响到A,反之则不然。

举一个实例:人用手机打电话。那么这个里面就有依赖关系,这里人是一个类,手机也是一个类,人打电话这个功能的实现,必须要依赖于手机这个类。

3、实现:这里说的是一个类(class)实现一个或者多个接口(interface)的问题,接口负责告诉你干什么,但是不说具体怎么干。类就是负责说出来具体实现的步骤,解决怎么干的问题。

4、泛化:也叫继承,指的是父类与子类之间的继承关系,有单继承和多继承之分。说白了,泛化就是一个抽象的层次问题。假设:喜鹊看做是一个类的话,那么再向上抽象,就得到了他的父类,鸟。鸟这个类再往上抽象又有了她的父类,飞行动物。飞行动物再往上又可以得到动物。

三、小结:

依赖和关联这两种关系,强调的更多是类-类,对象-对象,接口-接口等之间的横向联系。实现和泛化,讲的是纵向的联系。

本文不足:没有丰富的图和代码对各个关系的说明,只是字面上,语义上进行了解释。后续博客中将继续更新。

UML——关系的更多相关文章

  1. 图例解析四大UML关系【转】

    转自http://developer.51cto.com/art/201007/209644.htm 本文和大家重点讨论一下UML关系图,UML中有五类图,共有九种图形,UML类之间的UML关系图你是 ...

  2. UML关系

    UML关系详解 1.关联关系(association) 连接模型元素及链接实例,用一条实线来表示 2.依赖关系(dependency) 表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示 ...

  3. UML关系图

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  4. UML 关系

    1. 关联关系(association) 关联关系式是用一条直线表示的,如A—B.表示在一段时间内将多个类的实例连接在一起,关联关系描述了某个对象在一段时间内一直知道另一个对象的存在.在Rose中为了 ...

  5. 设计模式奠基石——UML关系转化为代码

    1.继承关系(泛化关系) [说明]:继承关系是子类(派生类)继承父类(基类),或者子接口继承父接口的关系.即子类对象"is a" 父类对象,比方鸟是动物. [UML图]: 图解:A ...

  6. 简单实用UML关系图解

    一句话UML,再记不住就要DPP了: 关系 图解 代码 备注 1:继承关系(Generalization)     2:实现关系(Realization)     3:依赖关系(Dependency) ...

  7. UML关系(泛化,实现,依赖,关联(聚合,组合))

    http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖. ...

  8. UML关系类图

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  9. UML关系总结

    用例图: 1.扩展关系:如果已有一个用例,在这个用例的基础(该用例是完整的)上加入新的动作形成了另一个用例,即后者是通过继承前者的属性并加入新的内容而来的,则前者通常称为通用化用例,后者常为扩展用例. ...

  10. UML关系实现、泛化,依赖、组合

    图片via<大话设计模式> UML一目了然

随机推荐

  1. Asp.net Core 2.0 实现Cookie会话

    与1.0版本相比微软做了一些调整.详细请参考官方文档,我这里就讲2.0的吧 1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置 第一处在  public void ...

  2. spring boot maven profiles,打包不同的配置文件

    1. 在pom.xml添加 <profiles> <profile> <id>dev</id> <properties> <envir ...

  3. 安装SVN和汉化包及基本使用

    官网下载程序 和 下载汉化包. https://tortoisesvn.net/   注意SVN汉化包版本需要和SVN版本一致,否则是无效的. 一.下载 1.进入官网,点击downloads 2.点击 ...

  4. 【JS学习】数组过滤方法的使用filter

    前言:本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 使用效果: 可以返回参数函数为真的值 //情景:实现从stu数 ...

  5. 终于可以愉快的撸Java异步代码了!

      异步响应式编程可以极大的提高系统的并发呑吐量,但由于Java没有类似于其他语言的Async/Await机制,所以只能通过CompletableFuture.thenXXX()来串联各个异步任务,这 ...

  6. Nginx(四):http服务器静态文件查找的实现

    上一篇nginx的文章中,我们理解了整个http正向代理的运行流程原理,主要就是事件机制接入,header解析,body解析,然后遍历各种checker,直到处理成功为止. 我们以访问一个普通文件为例 ...

  7. 类转json的基类实现

    类转json的基类实现 项目地址 github地址 实现原理 使用反射获取类的属性名和属性内容.具体原理可以自己查一下资料 对一个类调用getClass().getDeclaredFields()可以 ...

  8. STM32F207时钟系统解析

    在前几天的文章<晶振原理解析>中介绍了晶振如何产生时钟的,板子使用的是25M无源晶振,下文将介绍STM32F207的时钟系统如何将25M晶振时钟转换为120M系统主频时钟的. 01.时钟系 ...

  9. SVM 支持向量机算法-实战篇

    公号:码农充电站pro 主页:https://codeshellme.github.io 上一篇介绍了 SVM 的原理和一些基本概念,本篇来介绍如何用 SVM 处理实际问题. 1,SVM 的实现 SV ...

  10. 24V转5V稳压芯片,高效率的同步降压DC-DC变换器3A输出电流

    PW2330开发了一种高效率的同步降压DC-DC变换器3A输出电流.PW2330在4.5V到30V的宽输入电压范围内工作集成主开关和同步开关,具有非常低的RDS(ON)以最小化传导损失.PW2330采 ...