UML类图说明
1:示例
这是一个使用UML表示的类图的结构,通过箭头,菱形,实线以及虚线来代表一些类之间的关系,后面将按照上面的例子一一介绍说明。
上图中,abstract 车是一个抽象类。小汽车和自行车是继承了车的抽象类,实现了抽象类的一些抽象方法,他们之间是实现关系。SUV继承小汽车,SUV和小汽车之间是泛化关系!轮胎,发动机和小汽车之间是组合关系。学生和班级之间是聚会关系。学生和身份证之间是关联关系。学生和自行车之间是依赖关系。
2:具体分析
2.1:泛化关系
上面UML图中,SUV和小汽车之间是一种泛化关系,SUV is a 小汽车,泛化关系用一种带有空心的箭头来表示。在代码中表现的方式就是继承非抽象类的方式。
2.2:实现关系
上面UML图中,小汽车,自行车与抽象类车,之间是一种实现关系。重要的是要继承抽象类,或者实现接口这种关系是实现关系,在UML类图中使用虚线带箭头。在代码中表现的方式就是继承抽象类。
2.3:聚合关系
上面UML图中,学生和班级之间是一种聚合关系,表示班级有学生聚合而来,采用实线空心菱形箭头表示。与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 班级撤销了,学生不会消失,他们依然存在。
2.4:组合关系
上面UML图中,轮胎,发动机和小汽车之间是一种组合关系,采用实线实心菱形箭头表示。与聚合关系不同的是,整体和部分是强依赖的,即使整体不存在了,组合部分也不存在;例如, 小汽车没有,自然轮胎和发动起,也不会存在了。
2.5:关联关系
上面UML图中,学生和身份证是一种关联关系。关联关系是用一条直线表示的;它描述不同类的对象之间的结构关系;它是一种静态关系, 通常与运行状态无关,一般由常识等因素决定的;它一般用来定义对象之间静态的、天然的结构; 所以,关联关系是一种“强关联”的关系;比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系;
2.6:依赖关系
上面UML图中,学生和自行车之间是一种依赖关系。用来表示在运行过程中一种类可能会使用到另外一种类,在代码中就是按照赖;关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系;依赖关系除了临时知道对方外,还是“使用”对方的方法和属性;
最新文章
- FFmpeg + SoundTouch实现音频的变调变速
- 【转】request.getServletPath()和request.getPathInfo()用法
- Render OpenCascade Geometry Surfaces in OpenSceneGraph
- 序列不包含任何元素,c#,支付宝
- SwipeRefreshLayout下拉刷新
- LeetCode(228) Summary Ranges
- jquery通过ajax方法获取json数据不执行success回调
- C#集合之ArrayList
- Android 开发中 iBeacon的使用
- (转)centos6.5安装VNC
- [POI2009]KAM-Pebbles
- Mysql数据库安装和配置
- mapreduce的输入格式 --- InputFormat
- MySQL5.7.20 二进制包 在Linux系统中的 安装和配置
- vim shortcut
- 洛谷P3120 [USACO15FEB]牛跳房子(动态开节点线段树)
- Storyboarding by Scripting
- Wireshark工具抓包的数据包分析
- Python学习手册之内部方法、操作符重载和对象生命周期
- Java中ArrayList与数组间相互转换
热门文章
- [YOLO]《You Only Look Once: Unified, Real-Time Object Detection》笔记
- Sublime和Python中文编码的一些问题
- Python 中 unittest 框架加载测试用例的常用方法
- java排序,效率高的是哪种排序方法
- “战疫”需求不再等-京东云与AI【应急资源信息发布平台】召集开发者共同支援
- junit基础学习之-测试controller层(2)
- vue作用域插槽实践
- Dynamic Route Matching Vue路由(1)
- Day 18:SequenceInputStream、合并切割mp3、对象输入输出流对象
- UVA - 1643 Angle and Squares (角度和正方形)(几何)