当前位置: 首页 > news >正文

设计模式总结

文章目录

        • UML类图
          • 泛化(Generalization):
          • 实现(Realization):
          • 组合(Composition):
          • 聚合(Aggregation):
          • 关联(Association):
          • 依赖(Dependency):

UML类图

https://blog.csdn.net/wsyw126/article/details/51352249
https://design-patterns.readthedocs.io/zh-cn/latest/index.html

在这里插入图片描述

1、它们关系的强弱顺序:泛化= 实现> 组合> 聚合> 关联> 依赖
泛化、实现:箭头指向父类
聚合、组合:箭头指向整体,拥有者
关联、依赖:箭头指向被使用者

2、关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。

泛化(Generalization):

泛化是对象之间耦合度最大的关系之一。它表示的是继承关系。比如:son类继承Father类。

UML类图使用带三角的实线表示,由子类指向父类。

实现(Realization):

实现是另外一个对象之间耦合度最大的关系之一。它表示的是接口和实现类的关系。比如:ImplementsClass类实现Interface类。

UML类图使用带三角的虚线表示,由子类指向父类。

组合(Composition):

组合是次于前两者的关系,它表示的是整体和部分的关系。比如人和手的关系,当人不在了,手也就没了。

UML类图使用用实心菱形+实线+箭头图示表示,菱形的一边指的的拥有者ClassA,实线所在的一边为被拥有者ClassB。

聚合(Aggregation):

聚合是次于组合的关系,它表示的是是一个对象拥有另一个对象的关系。比如:车子和轮胎之间的关系。但是车子没了轮胎还是可以存在。

UML类图使用空心菱形+实线+箭头图示表示,菱形的一边指的的拥有者ClassA,实线所在的一边为被拥有者ClassB。

关联(Association):

关联是次于聚合的关系。关联关系一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的。比如:我有一个车子,我和车子的关系就是单向关联关系。箭头指向车子。

UML类图使用一条直线箭头连接,箭头所指的方向为被关联的对象。

依赖(Dependency):

依赖是一种比关联关系更弱的关系。依赖关系存在偶然性、临时性。比如:我会开车,别人给我一辆车,我就能开。这时候车子和我的关系就是依赖关系。

UML类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。


http://www.mrgr.cn/news/54812.html

相关文章:

  • WebGoat SQL Injection (intro) 源码分析
  • C++实现循环队列和链式队列操作(实验5--作业)
  • Java项目-基于Springboot的车辆充电桩项目(源码+说明).zip
  • Spring Boot在线考试系统:JavaWeb技术的应用案例
  • 【Python处理JSON与JSONP返回数据】
  • Redis的Bin目录文件及常用命令
  • vscode默认添加python项目的源目录路径到执行环境(解决ModuleNotFoundError: No module named问题)
  • debug:vscode使用ssh连接
  • pycharm调试带参数命令行的程序
  • Linux批量创建多个文件
  • 淘系商品详情数据接口系列的详细介绍
  • 推荐一款非常好用的3d设计软件:LuBan 3D
  • 基于opencv的人脸闭眼识别疲劳监测
  • Eclipse——Java开发详解
  • java基本数据类型
  • 自动对焦爬山算法原理
  • MySQL数据库备份和恢复:全面指南与实战代码
  • 【算法】KMP字符串匹配算法
  • MySQL-28.事务-介绍与操作
  • ElasticSearch-7.17.24设置密码及CA证书
  • aaaaaaaaaa
  • scrapy案例——豆瓣电影Top250的爬取
  • python中堆的用法
  • Go_Parser部署、使用与原理分析
  • 操作系统学习笔记-1.2操作系统的发展历程,运行机制
  • Java NIO缓冲区与非阻塞机制详解和案例示范