`

适配器模式和代理模式的区别

阅读更多

一.简介
        适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。
        代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

 

二.困惑
        设计模式总是通过增加层来进行解耦合,提高扩展性,但是如果我们没法从在这个抽象维度中看出,这个层真正的抽象含义,那么我们很难搞懂一个模式真正的内涵?我就有这个疑问,这两个东东都是增加了一层,但是这一层有什么区别?


三.理解
        很明显,适配器模式是因为新旧接口不一致导致出现了客户端无法得到满足的问题,但是,由于旧的接口是不能被完全重构掉的,因为我们还想使用实现了这个接口的一些服务。那么为了使用以前实现旧接口的服务,我们就应该把新的接口转换成旧接口;实现这个转换的类就是抽象意义的转换器。
        就比如在java中早期的枚举接口是Enumeration而后定义的枚举接口是Iterator;有很多旧的类实现了enumeration接口暴露出了一些服务,但是这些服务我们现在想通过传入Iterator接口而不是Enumeration接口来调用,这时就需要一个适配器,那么client就能用这个服务了(服务端只想用Iterator或者只知道这个接口)。
        相比于适配器的应用场景,代理就不一样了,虽然代理也同样是增加了一层,但是,代理提供的接口和原本的接口是一样的,代理模式的作用是不把实现直接暴露给client,而是通过代理这个层,代理能够做一些处理。

 

文章来源:http://blog.sina.com.cn/s/blog_a37588100102uzo0.html

分享到:
评论

相关推荐

    java 动态代理模式 适配器模式

    Java动态代理模式与适配器模式是两种在软件设计中常用的设计模式,它们都有各自的优点和应用场景。在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的...

    适配器模式,装饰模式和代理模式1

    适配器模式、装饰模式和代理模式 本文将详细介绍适配器模式、装饰模式和代理模式的概念、特点和应用场景,并通过实际的例子来阐述这三种模式的差异和相同点。 一、适配器模式 适配器模式是一种结构型设计模式,它...

    设计模式适配器模式PPT学习教案.pptx

    除了适配器模式,还有其他结构型模式,如桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式各自关注点不同,但都致力于提高代码的结构和可维护性。 桥接模式将抽象部分和实现部分解耦,使它们...

    适配器和代理模式详解

    ### 适配器模式详解 #### 一、适配器模式概述 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许我们通过包装一个类的接口来使其外观匹配客户端所期望的接口。该模式使得原本接口不兼容的类能够协同工作...

    设计模式:创建型之原型(深浅拷贝)、单例(饿汉式与懒汉式),三大工厂模式 结构型之适配器模式,代理模式(三大代理)

    结构型模式描述如何组合类和对象以获得更大的结构,如适配器模式、代理模式等。适配器模式允许不兼容的接口之间能够合作无间;代理模式则为另一个对象提供一种代理以控制对这个对象的访问,适用于延迟初始化、访问...

    iOS 设计模式 适配器模式

    适配器模式可以用来创建一个符合特定协议的代理对象,隐藏实际对象的复杂性,使其符合协议的要求。 5. **事件传递**:适配器模式也可用于事件处理。比如,当一个视图控制器需要处理来自多个视图的事件,但这些视图...

    51丨适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?1

    代理模式、桥接模式、装饰器模式和适配器模式虽然在代码结构上有些相似,但它们的核心目的和应用场景不同: - **代理模式**:为对象提供一个代理以控制对该对象的访问,如远程代理、虚拟代理、缓存代理等。 - **...

    基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等

    Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式、桥接模式、组合模式、装饰模式、享元模式、代理模式、命令模式、解释器模式、访问者模式、迭代子...

    2 适配器模式-课程内容.rar

    8. **适配器模式与其他设计模式的关系**:比较适配器模式与装饰者模式、代理模式等其他设计模式的异同。 9. **案例分析**:通过实际案例演示如何在项目中使用适配器模式,帮助理解其实际应用。 10. **设计原则**:...

    8. 适配器模式1

    虽然在代码结构上,适配器模式与代理模式有些相似,两者都涉及到一个中间类来封装目标对象,但它们的意图不同。代理模式通常用于控制访问、添加额外的功能或者提供一种虚拟代理,而适配器模式的主要目标是解决接口...

    Python实现适配器模式、装饰器模式、代理模式.md

    Python实现适配器模式、装饰器模式、代理模式

    javaweb项目+设计模式(单例模式,工厂模式,动态代理,适配器)

    本项目涵盖了四种常见的设计模式:单例模式、工厂模式、动态代理和适配器模式。下面将详细阐述这四种设计模式的概念、作用以及在实际项目中的应用。 **1. 单例模式** 单例模式是一种限制类实例化次数为一个的设计...

    面向对象23种设计模式之代理模式

    在某种程度上,代理模式和适配器模式都涉及到了对原有对象的封装,但它们的目标和应用场景不同。 总的来说,代理模式是面向对象设计中的一种重要模式,它提供了在不影响原有系统的情况下,增强或扩展对象功能的能力...

    23种设计模式-结构型模式.docx

    本文将深入探讨其中的两种结构型模式:适配器模式和代理模式。 1. 适配器模式 适配器模式是一种将两个不兼容的接口进行转换的模式,使得原本无法协同工作的类能够一起工作。它主要分为类适配器模式和对象适配器...

    day03 代理+适配器+桥接+外观+装饰

    代理模式、适配器模式、桥接模式、外观模式、装饰者模式 结构型模式是描述如何将类或对象按某种布局组成更大的结构的模式。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或...

    python 项目里常用的设计模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式 简单工厂 建造者模式 模板模式

    python 项目里常用的设计模式 单例模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式简单工厂 建造者模式 模板模式 桥接多维度 桥接模式 适配器模式 外观模式 享元模式 责任链组合模式

    设计模式-C++

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    java 23种设计模式.zip

    2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略...

Global site tag (gtag.js) - Google Analytics