适配器模式是构造型模式的一种,通过Adapter模式可以改变已有类的接口形式。

角色和职责:

1.目标(Target):

维护对行为实现(Implementor)的引用

2.源 -Current:

3.适配器(Adapter)-Adapter:

UML图:

具体代码:

/*** 当前用电*/
public class Current {public void electro(){System.out.println("当前用电220v");}
}

/*** 适配器*/
public class Adapter {private Current current;public Adapter(Current current){this.current = current;}/*** 使用适配器转成18v的电压*/public void electroAdapter18(){this.current.electro();System.out.println("使用适配器,转成电压18v");}
}

public class Main {public static void main(String[] args) {Current current = new Current();//当前电压//使用适配器转成18v电压Adapter adapter = new Adapter(current);adapter.electroAdapter18();}
}

结果:

当前用电220v
使用适配器,转成电压18v

优缺点:

优:可以在不修改原有代码的基础上复用现有的类,很好的遵守“开闭原则”

缺:针对基本代码,重定义Adaptee的行为比较困难,这就需要生成Adaptee的子类并且使得Adapter引用这个子类而不是Adaptee本身

应用场景:

系统需要复用现有类,而该类的接口不符合系统的需求。

源码地址:https://github.com/qjm201000/design_pattern_adapter.git

转载于:https://www.cnblogs.com/qjm201000/p/10072054.html

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

  1. 3.设计模式--适配器模式(adapter模式)

    1.场景 适配器模式可能是开发人员用的最多的一种设计模式,做后台开发你可能每天都在使用.只是不知道他的名字:现实中的适配器你应该不会陌生,新款的IQOO 8 pro手机充电器已经达到了120w,实际上 ...

  2. C#设计模式——适配器模式(Adapter Pattern)

    一.概述 在软件开发中,常常会想要复用一个已经存在的组件,但该组件的接口却与我们的需要不相符,这时我们可以创建一个适配器,在需复用的组件的接口和我们需要的接口间进行转换,从而能够正常的使用需复用的组件 ...

  3. Java设计模式-适配器模式Adapter

    定义:"转换接口" 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 我理解的"一个类的接口&q ...

  4. 趣谈设计模式 | 适配器模式(Adapter):如何让现存对象适用于新的环境?

    文章目录 案例:数据线转换器 适配器模式 "补偿"模式 总结 完整代码与文档 案例:数据线转换器 相信对于安卓用户,曾经或多或少都有着因为接口不适配而带来的苦恼.当你在更换手机时, ...

  5. Java设计模式—适配器模式(adapter pattern)

    现在的手机很多都取消了3.5mm的耳机接口,只留下了一个type-c接口.但是我现在只有一个3.5mm圆孔接口的耳机,我不得不通过一个转接线使得3.5mm的耳机变成type-c接口. //Type-C ...

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

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

  7. 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本 ...

  8. 【设计模式】—— 适配器模式Adapter

    模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现.因此,把这个现有的类,经过适配,转换成支持接口的类. 换句话说,就是把一种现有的接口编程另一种可用的接口. 模式结构 [类的适配器 ...

  9. 『设计模式』适配器模式(Adapter)

    23种设计模式+额外常用设计模式汇总 (持续更新) 适配器模式(Adapter) 适配器模式把一一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作. ...

  10. 设计模式(五)适配器模式Adapter(结构型)

    设计模式(五)适配器模式Adapter(结构型) 1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库 ...

最新文章

  1. 11月Android笔记
  2. 多媒体查询(一招教会你写响应页面!!!)
  3. python学习记录(三)
  4. 一篇博客读懂设计模式之-----策略模式
  5. SQL之COLLATE 子句 排序规则
  6. Numpy的使用(3)
  7. 四年级学生计算机学情分析报告,四年级学情分析
  8. PRML - Chapter 01: Introduction
  9. 数学建模入门篇(新手必看)
  10. python-expected an indented block问题解决
  11. 祝贺父亲节快乐的python代码_2019祝爸爸父亲节快乐的最新父亲节祝福说说句子大全...
  12. 大数据分析案例-基于逻辑回归算法构建垃圾邮件分类器模型
  13. 软件测试的测试内容有那些
  14. 欺骗的艺术----(8)
  15. java基础知识点整理大全
  16. 计算机启动老是检测硬盘怎么解决,开机出现硬盘检测是怎么回事 硬盘检测的解决方法...
  17. 什么是 Android?
  18. Translation插件
  19. Java简单实现在线查重思路
  20. ip数据报格式;ip数据报分片

热门文章

  1. 【php】利用php的构造函数与析构函数编写Mysql数据库查询类 (转)
  2. APP架子迁移指南(一)
  3. 百度地图集成Plist文件需要增加的字段
  4. uartz Spring与Spring Task总结
  5. UITableView方法详解
  6. 使用WebStorm/IDEA开发调试Vue/Webpack工程项目
  7. Java基础HashMap---面试题【二】
  8. MongoDB的查询语句示例说明
  9. puppeteer-firefox 开启扩展
  10. MySQL 字段操作命令