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

软件工程设计模式--结构型设计模式

设计模式的核心思想 :

 广义——软件设计模式是可解决一类软件问题并能重 复使用的软件设计方案

 狭义——设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述,是在类和对象的层次描述的可重复使用的软件设计问题的解决方案

设计模式按目的分类可以分为创建型、行为型、结构型,按范围分类可以分为类模式和对象模式。

设计模式之间的关系如下图所示:

结构型设计模式

类结构型模式关心类的组合,系统中一般只存在继承关系和实现关系。

对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象。

适配器模式

作用:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以一起工作。

类适配器使用的是继承关系。

对象适配器使用的是组合关系。

其实适配器模式是比较好理解的,他经常用在一些不能更改的类(比如类库),去适应一个接口,用对象型适配器模式来打个比方,适配器可以持有一个可以实现特殊功能的对象,然后去重写一个功能需求的接口,然后在这个功能需求的实现方法里面去调用这个成员对象的特殊功能。

桥梁模式

桥梁模式一般也用于表示两个维度的特征,他允许在一个维度使用继承关系,然后持有另一个维度的对象,使用另一个维度对象的方法来共同表示当前这个对象的特征。

其实质是抽象与实现的解耦合。

装饰者模式

装饰者模式允许在不改变一个类的前提下动态的为这个类添加新的功能。

外观模式

外观模式的设计原则是迪米特法则:不要和陌生人说话。(是一个比较简单的设计模式)

组合模式

享元模式

代理模式

结构型模式总结


http://www.kler.cn/a/409839.html

相关文章:

  • 开发者视角下的鸿蒙
  • Vue——响应式数据,v-on,v-bind,v-if,v-for(内含项目实战)
  • Redis 常用数据类型插入性能对比:循环插入 vs. 批量插入
  • 安装 Docker(使用国内源)
  • Exploring Prompt Engineering: A Systematic Review with SWOT Analysis
  • windows C#-取消任务列表(上)
  • 如何使用 PyCharm 工具连接远程服务器进行开发
  • Flume和kafka的整合:使用Flume将日志数据抽取到Kafka中
  • 打造智能化在线教育平台详解:教培网校APP的架构设计与实现
  • 【深度学习】【RKNN】【C++】模型转化、环境搭建以及模型部署的详细教程
  • 使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
  • 数据库连接池调优——可视化查询慢SQL利器
  • 1.Excel文本函数的使用
  • 通过map文件了解堆栈分配(STM32、MDK5)--避免堆栈溢出
  • 数学知识1
  • ubity3D基础
  • pytorchDay33
  • 【漏洞复现】CVE-2020-1956
  • 在接口实现时使用自定义对象的方法(非工具类,和单例模式)
  • Java中三种常用布局方式
  • Vue报错:error Mixed spaces and tabs no-mixed-spaces-and-tabs——报错处理
  • 神经网络归一化方法总结
  • 鸿蒙心路旅程:探索与收获之旅 勇攀高峰
  • 【我在CSDN成长】我的五周年创作纪念日
  • 掌握控制流的艺术:Go语言中的if、for和switch语句
  • php 导出excel 一个单元格 多张图片