我是靠谱客的博主 悦耳钢铁侠,最近开发中收集的这篇文章主要介绍适配器模式和代理模式的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、简介

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

二、问题

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

三、理解

        很明显,适配器模式是因为新旧接口不一致导致出现了客户端无法得到满足的问题,但是,由于旧的接口是不能被完全重构掉的,因为我们还想使用实现了这个接口的一些服务。那么为了使用以前实现旧接口的服务,我们就应该把新的接口转换成旧接口,实现这个转换的类就是抽象意义的转换器。

        适配器模式就像USB充电插头,将220伏的电源转化为USB接口,手机无法通过220伏的电源直接充电,所以中间需要加一个转化插头。代理模式就像通过中介买房,用户将买房流程交给中介处理,由中介代替用户去进行找房,过户等程序,用户本身不用直接与房子打交道。
        就比如在java中早期的枚举接口是Enumeration而后定义的枚举接口是Iterator;有很多旧的类实现了enumeration接口暴露出了一些服务,但是这些服务我们现在想通过传入Iterator接口,而不是Enumeration接口来调用,这时就需要一个适配器,那么client就能用这个服务了(服务端只想用Iterator或者只知道这个接口)。
        相比于适配器的应用场景,代理就不一样了,虽然代理也同样是增加了一层,但是,代理提供的接口和原本的接口是一样的,代理模式的作用是不把实现直接暴露给client,而是通过代理这个层,代理能够做一些处理

参考:

https://www.cnblogs.com/alsf/p/8506912.html

 

最后

以上就是悦耳钢铁侠为你收集整理的适配器模式和代理模式的区别的全部内容,希望文章能够帮你解决适配器模式和代理模式的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部