UML——关系
一、宏观导图:
二、细节
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——关系的更多相关文章
- 图例解析四大UML关系【转】
转自http://developer.51cto.com/art/201007/209644.htm 本文和大家重点讨论一下UML关系图,UML中有五类图,共有九种图形,UML类之间的UML关系图你是 ...
- UML关系
UML关系详解 1.关联关系(association) 连接模型元素及链接实例,用一条实线来表示 2.依赖关系(dependency) 表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示 ...
- UML关系图
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- UML 关系
1. 关联关系(association) 关联关系式是用一条直线表示的,如A—B.表示在一段时间内将多个类的实例连接在一起,关联关系描述了某个对象在一段时间内一直知道另一个对象的存在.在Rose中为了 ...
- 设计模式奠基石——UML关系转化为代码
1.继承关系(泛化关系) [说明]:继承关系是子类(派生类)继承父类(基类),或者子接口继承父接口的关系.即子类对象"is a" 父类对象,比方鸟是动物. [UML图]: 图解:A ...
- 简单实用UML关系图解
一句话UML,再记不住就要DPP了: 关系 图解 代码 备注 1:继承关系(Generalization) 2:实现关系(Realization) 3:依赖关系(Dependency) ...
- UML关系(泛化,实现,依赖,关联(聚合,组合))
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖. ...
- UML关系类图
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- UML关系总结
用例图: 1.扩展关系:如果已有一个用例,在这个用例的基础(该用例是完整的)上加入新的动作形成了另一个用例,即后者是通过继承前者的属性并加入新的内容而来的,则前者通常称为通用化用例,后者常为扩展用例. ...
- UML关系实现、泛化,依赖、组合
图片via<大话设计模式> UML一目了然
随机推荐
- 达梦数据库学习(一、linux操作系统安装及数据库安装)
达梦数据库学习(一.linux操作系统安装及数据库安装) 环境介绍: 使用VM12+中标麒麟V7.0操作系统+达梦8数据库 一.linux系统搭建 本部分没有需要着重介绍,注意安装时基本环境选择&qu ...
- ElasticSearch教程——filter与query对比(转学习使用)
一.数据准备 PUT /company/employee/2 { "address": { "country": "china", &quo ...
- Salesforce 大数据量处理篇(二)Index
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.202.0.salesforce_large_data_volumes_bp.meta/ ...
- IE浏览器F12无法使用
原文链接http://zhhll.icu/2020/04/07/windows/IE%E6%B5%8F%E8%A7%88%E5%99%A8F12%E6%97%A0%E6%B3%95%E4%BD%BF% ...
- 手把手教你用C语言编写一个哈希表
原文链接:https://www.swack.cn/wiki/001558681974020669b912b0c994e7090649ac4846e80b2000/001572849111298ae3 ...
- Go 的定时任务模块 Cron 使用
前言 新项目是Golang作为开发语言, 遇到了些新的坑, 也学到了新的知识, 收获颇丰 本章介绍在Go中使用Cron定时任务模块来实现逻辑 正文 在项目中, 我们往往需要定时执行一些逻辑, 举个例子 ...
- uber_go_guide解析(二)
前言 接上回 正文 错误消息 Go中声明错误有几种方式 errors.New() 简单的声明静态字符串信息的错误 fmt.Errorf 可以格式化插入信息的错误 自己实现 Error() 方法 使用e ...
- 【Flutter】容器类组件之填充
前言 Padding可以给其子节点添加填充(留白). 接口描述 class EdgeInsets extends EdgeInsetsGeometry { // 分别指定四个方向的填充 const E ...
- 二 prometheus 监控 Redis
Prometheus 监控Redis需要用到redis_exporter客户端, Prometheus -> redis_exporter这个模式, 类似监控Mysql 一个思路. 1 ) 设置 ...
- 十四:SQL注入之类型及提交注入
简要明确参数类型 数字,字符,搜索,json等 简要明确请求方法 GET,POST,COOKIE,REQUEST,HTTP头 其中SQL语句干扰符号:' " % ) } 等,具体查看用法 非 ...