《大话设计模式》—— 读后感(17)在NBA我需要翻译——适配器模式
来源:互联网 发布:怎样做一个绅士知乎 编辑:程序博客网 时间:2024/05/16 09:54
适配器模式
将一个类的接口转换成用户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。(摘抄)
其实适配器模式很简单,就是当你发现你写好了抽象接口和实现类,但是实现的类方法和抽象接口的方法不兼容,这个时候加入一个类实现抽象接口,然后在这个类中实例化实现类,在接口需要调用某种方法时,直接调用实现类里面的方法就可以了,这样解除了不兼容的问题。但是缺点也很明显,如果实现类中的代码不是特别复杂而且这个实现类又和别的没有太大关系时,最好是重新写一个接口的实现类会比较方便和清晰。同时,这也体现了适配器模式的优点,可以增加类的复用,同时在后期维护过程中只需要增加适配器类就可以了。这个是利弊共存的,至于如何取舍这就需要具体情况具体分析了。
//定义抽象接口public interface DBTool{void query();void update();void delete();void add();}//程序里已经有了一个写好的数据库处理类public class ConcreteDBTool{public void q(){}public void u(){}public void d(){}public void a(){}}//已经存在的处理类和接口不兼容,这时就需要一个适配器类public class DBToolAdapter implements DBTool{private ConcreteDBTool concreteDBTool = new ConcreteDBTool();@Overridepublic void query() {// TODO Auto-generated method stubconcreteDBTool.q();}@Overridepublic void update() {// TODO Auto-generated method stubconcreteDBTool.u();}@Overridepublic void delete() {// TODO Auto-generated method stubconcreteDBTool.d();}@Overridepublic void add() {// TODO Auto-generated method stubconcreteDBTool.a();}}//如果客户端现在需要使用已经写好的数据库实现类,那么使用适配器类就可以了public class Client{public static void main(){DBTool dbTool = new DBToolAdapter();//使用的是已经提前写好的实现类里面的方法dbTool.query();dbTool.update();dbTool.delete();dbTool.add();}}
平时编程的时候有很多类的名字里面都有adapter,估计这些adapter类,就是使用的适配器模式。(纯属个人猜测)
0 0
- 《大话设计模式》—— 读后感(17)在NBA我需要翻译——适配器模式
- 【结构型模式】《大话设计模式》——读后感 (12)在NBA我需要翻译?——适配器模式
- 《大话设计模式》之--第17章 在NBA我需要翻译----适配器模式
- 《大话设计模式》之--第17章 在NBA我需要翻译----适配器模式
- 《大话设计模式》--在NBA我需要翻译--适配器模式<Adapter>(17)
- 大话设计模式-第17章 在NBA我需要翻译----适配器模式
- 第17章 在NBA我需要翻译--适配器模式
- 【设计模式】在NBA需要翻译 --- 适配器模式
- 设计模式——适配器模式(NBA里有翻译)
- 《大话设计模式》—— 读后感(25)世界需要和平——中介者模式
- 【大话设计模式】——适配器模式
- 大话设计模式——适配器模式
- 大话设计模式——适配器模式
- 大话设计模式—适配器模式
- 【读书笔记】大话设计模式—适配器模式
- 第十七章 在看NBA需要翻译--适配器模式(读书笔记)
- 《大话设计模式》 —— 读后感 (11)迪米特法则
- 《大话设计模式》—— 读后感(19)分公司=部门——组合设计模式
- 《从程序员到项目经理》读书笔记(十):每个人都是管理者
- 命名空间
- Ubuntu 终端里打开 pdf 命令
- Head First PHP&MySQL 学习笔记(三,四) —— 现实的实际应用
- C#小知识
- 《大话设计模式》—— 读后感(17)在NBA我需要翻译——适配器模式
- Android adb shell am学习
- 研大考研--医学考研集训第一营
- BlueTooth: 蓝牙协议中HCI层的研究与开发
- JAVA做ACM题取得输入输出的方法
- 嵌入式常见英文缩写
- iOS技巧——xcode的xib文件的6、7、3.5、4寸屏幕的四种适配
- 类名:Wage(计算员工工资,从键盘输入)
- 《从程序员到项目经理》读书笔记(十一):如何管理自己的时间