类关系与uml图示表示
1. 关联(Association)、聚合(Aggregation)、组合(Composition)区别
association: 两者之间存在某种关联即可,很弱的关系,如student and course, 每个学生可以选不同的课,每门课上有不同学生;
aggregation: "consist of":整体与部分之间的关系,但这里部分可以脱离整体单独存在,如MP3上所插的耳机,MP3包含耳机,但这个耳机也可以单独存在,或者插在其他电脑上。UML用带空心菱形的直线表示。
composition: 更强的aggregation,这里部分不能脱离整体而存在,这个部分是整体的私有财产,部分与整体具有相同的生命周期。比如Apple Itouch上的电池,原则不能拆下来单独使用。UML用带实心菱形的直线表示。
三者描述对象的附属[也就是依赖]关系: 关联 < 聚合 < 组合,依赖关系是逐渐加强的。
2.依赖(dependency)、泛化(generalization)、实现(realization)
dependency:依赖关系是一种使用关系,特定事物的改变可能会影响到使用该事物的其他事物,在需要表示一个事物使用另外一个事物时使用依赖关系。大多数情况下,体现在某个类的方法使用另外一个类的对象作为参数。UML使用带箭头的虚线,由依赖的一方指向另一方。
generalization:泛化关系也就是继承关系,用于描述父类与子类之间的关系,父类又称为基类或超类,子类又称为派生类。UML中用带空心三角形的直线来表示。
realization:实现关系是类实现了接口,类中的操作实现了接口中所声明的操作。UML中用带空心三角形的虚线表示。
3.继承(inheritance)
inheritance: "a kind of": 猫是一种动物,说明猫从动物继承;等同于generalization(泛化关系)。
类关系与uml图示表示的更多相关文章
- 设计模式基础:类及类关系的UML表示
设计模式基础:类及类关系的UML表示 2009-10-26 17:00 by 宗哥, 1891 阅读, 1 评论, 收藏, 编辑 UML中,类关系分为这几种,泛化(generalization), 实 ...
- 【建模】UML类关系分析
一.UML类关系分析 1.关联(asociation) 一般是一方拥有另一方对象的指针.箭头的方向是访问方向. 2.聚合(Aggregation)和组合(Composition) 聚合和关联一般不做区 ...
- UML中常见的类关系你了解吗?
最近老大给我设计了一个微信扫码登录的通过工具包流程图,设计过程中使用了模板模式.面向接口编程等设计思路,让我很享受整个过程:下来我就接触了一下Java的设计模式,很是懵懂,听说这也是要靠经验来喂,才能 ...
- 设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解
前言 UML俗称统一建模语言.我们可以简单理解成他是一套符号语言.不同的符号对应不同的含义.在之前设计模式章节中我们文章中用到的就是UML类图,UML除了类图意外还有用例图,活动图,时序图. 关于UM ...
- UML类关系(依赖,关联,聚合,组合,泛化,实现)
转自https://blog.csdn.net/k346k346/article/details/59582926 在学习面向对象设计时,类关系涉及依赖.关联.聚合.组合和泛化这五种关系,耦合度依 ...
- UML图示
来源: http://www.uml.org.cn/oobject/200901041.asp 近些天学习设计.由于没有具体项目,原有项目也没有什么设计的概念,只是看相关的书籍,所以着实有些抓狂.然最 ...
- 面向对象的类关系及其C++实现
在面向对象的程序设计中,类之间有6中关系,分别是继承, 组合, 聚合,关联, 依赖,实现,如果使用C语言实现,上面的这些关系通过"结构体包含结构体.结构体包含结构体指针以及函数指针等语法实现 ...
- UML图示说明
UML图示说明 继承:实线空三角形箭头指向父类 接口:虚线空三角形箭头指向接口 关联:实线无箭头方指向拥有者 聚合:实线空心菱形箭头指向整体,部分可以单独存在 组合:实线菱形指向整体,部分不能单独存在 ...
- [LINQ2Dapper]最完整Dapper To Linq框架(三)---实体类关系映射
此特性需要安装Kogel.Dapper.Mssql或者Oracle 3.06及以上版本,实体类层需要安装Kogel.Dapper.Extension 3.06及以上版本 目录 [LINQ2Dapper ...
随机推荐
- java架构《并发线程高级篇二》
本章主要记录讲解并发线程的线程池.使用Executor框架自定义线程池. 自定义线程池使用Queue队列所表示出来的形式: 1 ArrayBlockingQueue<Runnable>(3 ...
- Django(静态文件or路由)
静态文件 在开发中同创会使用到 css,js,img等静态文件,这里带大家简单的介绍一下django如何处理静态页面, 配置 setting.py文件 STATIC_URL = '/static/' ...
- 让visual studio总是以管理员身份启动
环境 win10 visual studio 2019 步骤 找到visual studio的安装目录 怎么找? 右击win10开始菜单中visual studio的快捷方式, 依次选择 更多-> ...
- 分层图最短路( LYOi Online Judge 初中的最后一天)
代码参照: LYOI Online Judge #374. 初中的最后一天 分层图最短路模板题 1 #include<iostream> 2 #include<cstdi ...
- poj1061青蛙的约会 (扩展欧几里德)
Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事 ...
- A. Little Elephant and Interval
The Little Elephant very much loves sums on intervals. This time he has a pair of integers l and r ( ...
- 牛客编程巅峰赛S2第3场 Tree VI (树,dfs)
题意:给你一个\(n\)个点的完全\(k\)叉树的先序遍历序列\(a\),还原这颗树并且求所有两个端点的异或和. 题解:用dfs在还原树的时候,把子节点和父亲节点的异或贡献给答案,对于每个节点,我们找 ...
- Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths (思维)
题意:有一个\(n\)x\(m\)的矩阵,从\((1,1)\)出发走到\((n,m)\),问最少修改多少个数,使得所有路径上的数对应相等(e.g:\((1,2)\)和\((n-1,m)\)或\((2, ...
- 一篇文章图文并茂地带你轻松学完 JavaScript 设计模式(一)
JavaScript 设计模式(一) 本文需要读者至少拥有基础的 ES6 知识,包括 Proxy, Reflect 以及 Generator 函数等. 至于这次为什么分了两篇文章,有损传统以及标题的正 ...
- Windows Terminal 更换主题
1. 打开设置,是个json文件 2. 在此处获取主题配置:https://atomcorp.github.io/themes/ 3.将主题配置粘贴到schemes节点(可以增加N个) 4.配置每个命 ...