在一些业务场景里,你是否遇到过如下类似的需求:

1、系统需要使用现有的类,而此类的接口不符合系统的需要。

2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。

3、通过接口转换,将一个类插入另一个类系中。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。)

你希望将一个类的接口转换成另外一个类的接口。那么这个时候引入了设计模式里的适配器模式,它使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

注意,不是下面的这种适配器。

适配器简介

适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(英语:wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。简单点来说,就是让两个原本不发通信的两个类通过转接编程可以正常通信。如下图:

UML类图

设计模式 ---适配器模式相关推荐

  1. Python设计模式-适配器模式

    Python设计模式-适配器模式 基于Python3.5.2,代码如下 #coding:utf-8class ACpnStaff:name = ""id = "" ...

  2. Java | 设计模式-适配器模式

    继代理模式后又来到适配器模式啦,想看之前的也有哦.持续更新中哦.让我们一起加油吧兄弟们,干他. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 你好,如果喜欢,请一起坚持!! ...

  3. java设计模式适配器模式_Java中的适配器设计模式

    java设计模式适配器模式 适配器设计模式是一种结构设计模式 ,可以帮助我们连接到通过不同接口公开相似功能的旧版或第三方代码. 适配器的现实世界是我们用来将USB电缆连接到以太网端口的类比. 在设计一 ...

  4. 设计模式适配器模式_适配器设计模式示例

    设计模式适配器模式 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要 ...

  5. 设计模式适配器模式_21世纪的设计模式:适配器模式

    设计模式适配器模式 这是我的演讲的第三部分," 21世纪的设计模式" . 适配器模式桥接世界. 在一个世界中,我们有一个概念的界面. 在另一个世界,我们有不同的界面. 这两个接口有 ...

  6. java设计模式适配器模式_Java解释器设计模式

    java设计模式适配器模式 Interpreter design pattern is one of the behavioral design pattern. Interpreter patter ...

  7. Java代码审计-设计模式-适配器模式

    Java设计模式-适配器模式(Adapter Pattern) 目录 什么是适配器模式 适配器模式的3种类型 JavaSE适配器模式的应用 Struts2适配器模式的应用 适配器模式是一种" ...

  8. 【设计模式】Java设计模式 - 适配器模式

    [设计模式]Java设计模式 - 适配器模式

  9. C++设计模式——适配器模式(adapter pattern)

    一.原理讲解 适配器模式别名为包装器(wrapper),分为类适配器(通过多继承实现).对象适配器(组合方式实现),由于类适配器比较少用,本文主要讲解用的比较多的对象适配器. 1.1意图 将一个类的接 ...

  10. [Head First设计模式]身边的设计模式——适配器模式

    系列文章 [Head First设计模式]山西面馆中的设计模式--装饰者模式 [Head First设计模式]山西面馆中的设计模式--观察者模式 [Head First设计模式]山西面馆中的设计模式- ...

最新文章

  1. SQL Server 查询性能优化——堆表、碎片与索引(一)
  2. 新手应该如何有效地学习.net
  3. vmware如何安装solaris10
  4. 让一切“并行”——任务并行库原理及应用
  5. 适合于图像处理方向的SCI期刊杂志列表【转】
  6. red_hat_enterprise_linux
  7. 渥太华计算机读研的好学校,加拿大硕士留学:渥太华最好的大学硕士项目
  8. uniapp , 微信小程序 图片加载时闪烁
  9. css实现气泡框小尾巴
  10. 监督学习和无监督学习简单理解
  11. Smart-doc的脚本生成在线文档(精简官方文档描述)
  12. 火狐浏览器和ie_浏览器趋势2016年5月:Firefox最终超过IE
  13. 迭代器(list迭代器的实现)
  14. ASCII:字符集与字符编码的起源
  15. 史上最简单的Spring Security教程(二十八):CA登录与默认用户名密码登录共存详细实现及配置
  16. 脱离圈套:“你希望与什么样的上级共事?”
  17. gm修改爆率需要重启服务器吗,自己开传奇如何设置GM名单,以及装备爆率
  18. Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value
  19. Nginx Image 缩略图 模块
  20. 双卡双待的手机会有两个IMEI号

热门文章

  1. linux 自带 mysql,linux下安装mysql
  2. VS2005开发WinCE6.0应用程序 更换SDK后工程的移植
  3. 软件测试菲律宾,英雄联盟手游菲律宾测试资格怎么得 菲律宾测试资格获取攻略[多图]...
  4. ashx连接mysql_对C#中的web访问mysql数据库的一些知识点进行了整理归纳总结
  5. 【转】ABP源码分析四十二:ZERO的身份认证
  6. c#进阶(1)—— Task Parallel Library 并行执行与串行执行
  7. python输入城市名称_python 查询天气(输入城市名,输出天气)
  8. 【Python 标准库学习】时间相关的函数库 — time
  9. C语言实现AES加解密算法
  10. 【HDU - 1026 】Ignatius and the Princess I (bfs + 记录路径)