设计模式之常见关系

继承和泛化

  • 泛华关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。
  • 使用三角箭头的实线表示继承,其中箭头指向的是父类

接口与实现

  • 在java中一个类只能继承一个父类,但是可以实现多个接口
  • 使用的是带三角的虚线表示,其中箭头指向的是接口

依赖

  • 是一种使用关系,即一个类的实现需要另外一个类的协助,所以尽量不使用双向的依赖关系。
  • 最典型的就是import
  • 比如:一个类要定义String类型的变量,那么这个类就是依赖String这个类

关联

  • 是一种拥有的关系,它使一个类知道另外一个类的属性和方法,比如数据库中的关系,通过学生可以查找到自己课程的成绩,只需要在学生中定义一个课程的对象即可。
  • 代码体现: 成员变量
  • 带普通箭头的实心线,指向被拥有者

聚合

  • 是整体和部分的关系,且部分可以离开整体而单独的存在。车和轮胎是整体和部分的关系,但是轮胎离开车还是可以单独存在的
  • 代码体现: 成员变量
  • 带空心菱形的实心线,菱形指向整体

组合

  • 是整体和部分的关系,但是部分不能离开整体而单独存在
  • 代码体现:成员变量
  • 带实心菱形的实线,菱形指向整体

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

python3--类的组合,初始类的继承

圆环是由两个圆组成的,圆环的面积是外面圆的面积减去内部圆的面积。圆环的周长是内部圆的周长加上外部圆的周长

1372
来自专栏dalaoyang

递归基础思想

1703
来自专栏落影的专栏

程序员进阶之算法练习(三十五)LeetCode专场

LeetCode上的题目是大公司面试常见的算法题,今天的目标是拿下5道算法题: 题目1是基于链表的大数加法,既考察基本数据结构的了解,又考察在处理加法过程中的边...

48916
来自专栏轮子工厂

设计模式(一) | 啥是工厂模式和策略模式?

752
来自专栏小樱的经验随笔

HUST 1586 数字排列

1586 - 数字排列 时间限制:1秒 内存限制:128兆 91 次提交 36 次通过 题目描述现有n个k位的数字,你的任务是重新安排数字每一位的位置,使得...

29912
来自专栏HTML5学堂

原生JS | 当兔子遇到鸡

HTML5学堂-码匠:当兔子遇到鸡,会怎样呢?先别急,看个小视频~ 视频内容 当兔子遇到鸡 —— 不要害怕和别人不一样,在这个世界上,你就是独一无二的自己! 不...

46910
来自专栏算法channel

不基于比较的基数排序原理图解

主要推送关于对算法的思考以及应用的消息。坚信学会如何思考一个算法比单纯地掌握100个知识点重要100倍。本着严谨和准确的态度,目标是撰写实用和启发性的文章,欢迎...

46413
来自专栏专知

关关的刷题日记12——Leetcode 189. Rotate Array 方法1、2、3

关小刷刷题12 – Leetcode 189. Rotate Array 方法1、2、3 题目 Rotate an array of n elements to...

3698
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-06.总结二维数组,面向对象

1:二维数组(理解) (1)元素是一维数组的数组。 (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][]...

2804
来自专栏JavaEdge

设计模式实战 - 解释器模式(Interpreter Pattern)

● 公式可以运行时编辑,并且符合正常算术书写方式,例如a+b-c ● 高扩展性,未来增加指数、开方、极限、求导等运算符号时较少改动 ● 效率可以不用考虑,晚...

1082

扫码关注云+社区

领取腾讯云代金券