适配器模式(对象适配器)
适配器模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。
适配器模式的两种形式
- 类适配器采用 “多继承” 的实现发式,带来了不良的高耦合,所以一般不推荐使用。
- 对象适配器采用 “对象组合” 的方式,更符合松耦合精神。
在以下各种情况下使用适配器模式
- 系统需要使用现有的类,而此类的接口不符合 系统的需要。
- 想要建立一个有以重复使用的类,该类可能与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
- (对对象适配器而言) 在设计里,你想使用一些已经存在的子类,但是不可能对每一个子类都进行适配。对象适配器可以适配它你的父类接口 (使用的扩展) 。
本质:转换匹配,复用功能
优点:
- 更好的复用性
- 更好的可扩展性
在实现适配器功能的时候, 可以调用自己开发的功能,从而自然地扩展系统的功能
缺点:
- 过多地使用适配器,会让系统非常凌乱,不容易整体进行把握。
目标(Target) 角色:
这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
源(Adaptee)角色:需要适配的类。
适配器(Adapter) 角色:
通过在内部包装(Wrap)一个Adaptee对象,把源接口转换成目标接口。
对象适配器:
客户所期待的抽象类(接口):
public abstract class Target {public abstract void Request();
}
需要适配的类:
public class Adaptee {public void SpecificRequest() {System.out.println("特殊请求");}
}
public class Adapter extends Target {private Adaptee adaptee=new Adaptee();@Overridepublic void Request() {adaptee.SpecificRequest();}
}
public class Program {public static void main(String[] args) {Target target=new Adapter();target.Request();}
}
适配器模式(对象适配器)相关推荐
- 【设计模式】适配器模式 ( 类适配器代码模板 | 对象适配器代码模板 | 适配器模式示例 )
文章目录 I . 适配器模式 ( 类适配器 ) 代码模板 II . 适配器模式 ( 对象适配器 ) 代码模板 III . 适配器模式 代码示例 I . 适配器模式 ( 类适配器 ) 代码模板 1 . ...
- 【设计模式】适配器模式 ( 概念 | 适用场景 | 优缺点 | 外观模式对比 | 适配器模式相关角色 | 类适配器 | 对象适配器 | 实现流程 )
文章目录 I . 适配器模式概念 II . 适配器模式 适用场景 III . 适配器模式 优缺点 IV . 适配器模式 与 外观模式对比 V . 适配器模式 相关角色 ( 重点 ) VI . 适配器模 ...
- C++设计模式——适配器模式(对象适配器、类适配器)
http://blog.jobbole.com/109381/?winzoom=1 前言 现在的笔记本都只存在USB接口,用来口,电脑上存在的是USB接口,两者如何通信呢?可以使用USB转串口线连接电 ...
- 适配器模式(类适配器,对象适配器,接口适配器)
现实生活中的适配器例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器) ,这样就可以使用了. 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一 ...
- 适配器模式之类适配器与对象适配器的区别及代码实现
什么是适配器模式? 适配器模式(Adapter):直观理解就是使原来不能一起相互工作(接口不兼容)的两个功能通过Adapter兼容在一起. 类适配器和对象适配器 类适配器 Adapter 类继承Ada ...
- 设计模式--适配器模式 (类适配器和对象适配器)
适配器模式很常用的:商城中的例子比如快递发货,那么多种快递公司:可能每个快递公司的接口对接都不一样都要适配:比如各种框架中的类似以下思想的代码,都是为了适配. public function beha ...
- 设计模式适配器模式_适配器设计模式示例
设计模式适配器模式 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要 ...
- 适配器模式(类适配器)
java设计模式大体分为23种设计模式,直接通过例子学习设计模式,更易于理解和思考其中的原理和作用,以下给出 适配器模式 的第一种(一个有三种)的demo,叫做类适配器模式: MainRun.java ...
- Java 设计模式 Adapter 对象适配器 模式
Java 设计模式 Adapter 对象适配器 模式 Adapter模式用于现有的程序无法直接使用,需要做适当的变换之后才能使用的情况. 涉及到的角色 Target对象:定义所需的方法. Client ...
最新文章
- Multi Dimension 数据库设计
- 使用sklearn来处理类别数据
- win64环境下的一些配置
- NIO之ByteBuffer_NIO之网络IO_与ChannelNetty初窥门径
- erlang环境变量——HOME
- 4 谐波_谐波的基础知识
- AngularJS-源码阅读(八.二)
- Flash Builder4.7安装破解
- CenterNet原理详解
- 为什么要在主线程更新UI?
- go语言环境搭建及vim高亮设置
- 软件介绍:搜索工具 Listary
- GIT 密钥生成工具puttygen使用技巧
- 黑客是如何入侵服务器的
- 零基础学前端系列教程 | 和前端谈恋爱的第004天——打扮漂亮
- 时分秒倒计时的js实现
- markman psd
- itween的抛物线线性移动
- L2-048 寻宝图
- linux 按键检测 防抖,GPIO输入——按键检测