一、宏观导图:

二、细节

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

三、小结:

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

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

最新文章

  1. HTTP各状态码解释
  2. Sql Server 行转列
  3. Ubuntu更改右键菜单
  4. HBase 的存储结构
  5. Leetcode#106 Construct Binary Tree from Inorder and Postorder Traversal
  6. Operation与GCD的不同
  7. UVA 796 - Critical Links (求桥)
  8. 【POJ3237】Tree(树链剖分+线段树)
  9. Centroid - SGU 134(树的搜索)
  10. ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题
  11. 清除Android工程中没用到的资源(转)
  12. Java中finally你知多少
  13. 洛谷P4180 [Beijing2010组队]次小生成树Tree(最小生成树,LCT,主席树,倍增LCA,倍增,树链剖分)
  14. Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
  15. Java高并发系列 — AQS
  16. 完整的Django入门指南学习笔记6
  17. JavaScript高级程序设计笔记(一)
  18. .NetCore中使用AspectCore、ExceptionLess 实现AOP操作日志记录
  19. Docker命令分类及使用场景分布(脑图)
  20. Linux基础命令---cpio

热门文章

  1. [不止于代码]Unraid基本使用速记
  2. Spring Boot 2.0 的配置绑定类Bindable居然如此强大
  3. Java 安全之Weblogic 2017-3248分析
  4. Python模块化编程与装饰器
  5. HTML DOM 定义了访问和操作 HTML 文档标准
  6. JCO RFC destination
  7. printf函数输出格式总结
  8. bootstrap弹出层嵌套弹出层后文本框不能获得焦点输入
  9. apijson简单使用
  10. [Usaco2008 Nov]Buying Hay 购买干草