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图中,学生和自行车之间是一种依赖关系。用来表示在运行过程中一种类可能会使用到另外一种类,在代码中就是按照赖;关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系;依赖关系除了临时知道对方外,还是“使用”对方的方法和属性;

最新文章

  1. FFmpeg + SoundTouch实现音频的变调变速
  2. 【转】request.getServletPath()和request.getPathInfo()用法
  3. Render OpenCascade Geometry Surfaces in OpenSceneGraph
  4. 序列不包含任何元素,c#,支付宝
  5. SwipeRefreshLayout下拉刷新
  6. LeetCode(228) Summary Ranges
  7. jquery通过ajax方法获取json数据不执行success回调
  8. C#集合之ArrayList
  9. Android 开发中 iBeacon的使用
  10. (转)centos6.5安装VNC
  11. [POI2009]KAM-Pebbles
  12. Mysql数据库安装和配置
  13. mapreduce的输入格式 --- InputFormat
  14. MySQL5.7.20 二进制包 在Linux系统中的 安装和配置
  15. vim shortcut
  16. 洛谷P3120 [USACO15FEB]牛跳房子(动态开节点线段树)
  17. Storyboarding by Scripting
  18. Wireshark工具抓包的数据包分析
  19. Python学习手册之内部方法、操作符重载和对象生命周期
  20. Java中ArrayList与数组间相互转换

热门文章

  1. [YOLO]《You Only Look Once: Unified, Real-Time Object Detection》笔记
  2. Sublime和Python中文编码的一些问题
  3. Python 中 unittest 框架加载测试用例的常用方法
  4. java排序,效率高的是哪种排序方法
  5. “战疫”需求不再等-京东云与AI【应急资源信息发布平台】召集开发者共同支援
  6. junit基础学习之-测试controller层(2)
  7. vue作用域插槽实践
  8. Dynamic Route Matching Vue路由(1)
  9. Day 18:SequenceInputStream、合并切割mp3、对象输入输出流对象
  10. UVA - 1643 Angle and Squares (角度和正方形)(几何)