设计模式:适配器模式和代理模式的区别
来源:互联网 发布:怎么优化机构设置 编辑:程序博客网 时间:2024/05/21 10:06
(转载)http://blog.sina.com.cn/s/blog_a37588100102uzo0.html
1.简介
适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。wiki
代理模式:代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。wiki
2.困惑
设计模式总是通过增加层来进行解耦合,提高扩展性,但是如果我们没法从在这个抽象维度中看出,这个层真正的抽象含义,那么我们很难搞懂一个模式真正的内涵?我就有这个疑问,这两个东东都是增加了一层,但是这一层有什么区别?
3.理解
很明显,适配器模式是因为新旧接口不一致导致出现了客户端无法得到满足的问题,但是,由于旧的接口是不能被完全重构掉的,因为我们还想使用实现了这个接口的一些服务。那么为了使用以前实现旧接口的服务,我们就应该把新的接口转换成旧接口;实现这个转换的类就是抽象意义的转换器;
就比如在java中早期的枚举接口是Enumeration而后定义的枚举接口是Iterator;有很多旧的类实现了enumeration接口 暴露出了一些服务,但是这些服务我们现在想通过传入Iterator接口而不是Enumeration接口来调用,这时就需要一个适配器,那么client就能用这个服务了(服务端只想用Iterator或者只知道这个接口);
相比于适配器的应用场景,代理就不一样了,虽然代理也同样是增加了一层,但是,代理提供的接口和原本的接口是一样的,代理模式的作用是不把实现直接暴露给client,而是通过代理这个层,代理能够做一些处理;
感悟:设计模式学习应该结合场景,脱离了场景就很难明白这些东西,这些层这么写都是在干什么;其实不管是面向对象还是设计模式,最重要的是抽象,理解了它在抽象一个什么场景你才能理解本质;
- 设计模式:适配器模式和代理模式的区别
- 代理模式与适配器模式的区别
- 抽象类和接口的区别(里面有适配器设计、工厂设计、代理设计模式)
- 抽象类和接口的区别(里面有适配器设计、工厂设计、代理设计模式)
- 设计模式--代理模式--以及和装饰模式的区别
- 设计模式之适配器模式和代理模式
- 装饰器模式、代理模式、适配器模式和外观模式的联系与区别
- 适配器模式和代理模式:
- 适配器模式和代理模式
- 适配器模式、装饰器模式、代理模式的区别
- 再看设计模式:代理、装饰和适配器
- 装饰设计模式和代理设计模式的区别
- 代理模式,适配器模式和装饰模式'
- 装饰者,适配器,代理和外观模式的区别
- 迭代器模式+代理模式和适配器模式的简述
- 外观模式和适配器模式的区别
- 桥梁模式和适配器模式的区别
- java中代理设计模式和适配器模式
- 一道java题
- 偏差-方差均衡
- 国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)
- 《谈判说服力》读后感
- MyBatis Like 拼接
- 设计模式:适配器模式和代理模式的区别
- app移动接口开发需要注意什么
- ganglia安装
- 欢迎使用CSDN-markdown编辑器
- java对redis的基本操作
- MPDU and MSDU介绍
- Session的生命周期
- 蓝桥杯往届试题——蚂蚁感冒(思维题目)
- 出现undefined reference to 'WinMain@16'的可能情况