设计模式——适配器模式
2016-05-02 20:21
405 查看
适配器模式
一个类提供了一个接口的实现,而另一个类要求通过另一个接口来使用该实现。两个接口不同肯定不能一起工作。根据开闭原则,接口确定好后是不能修改的,此时需要通过适配器来完成接口的转换。在原有的实现类或接口外包一层后,变为使用者可以使用的类或接口。类适配器模式,通过继承实现。
//原有的接口 public interface Old { public void oldMethod(); } //原有接口的实现 public class OldImpl implements Old { public void oldMethod() { ... } } //新的接口 public interface New { public void newMethod(); } //新的接口的实现 public class NewImpl implements New { public void newMethod() { ... } } //适配器类,通过继承原有的实现类来实现 public class Adapter extends OldImpl implements New { public void newMethod() { super.oldMethod(); } } //使用者面向新的接口编程 public class User { public void use(String str) { //根据str获取一个具体的New接口的实现,IOC思想 New newIn = getResource().getXML(XML路径).getBean(str); //实现来自Adapter会调用原有的方法,来自NewImpl会调用新的方法 newIn.newMethod(); } }
对象适配器模式,通过对象组合方式实现。根据合成复用原则,能用对象组合尽量不要用类继承。
//适配器,直接面向原有的实现编程 public class Adapter implements New { private Old oldIn; public Adaper() { this.oldIn = new OldImpl(); } public void newMethod() { oldIn.oldMethod(); } } //使用者面向新的接口编程 public class User { public void use(String str) { //根据str获取一个具体的New接口的实现,IOC思想 New newIn = getResource().getXML(XML路径).getBean(str); newIn.newMethod(); } }
相关文章推荐
- java的常用的dos命令
- 不同进制间的相互转换的理解
- netty in action sixth chapter summarize
- ansible之cron模块
- Laxcus大数据管理系统2.0(13)- 总结
- Laxcus大数据管理系统2.0(12)- 第十章 运行
- Laxcus大数据管理系统2.0(11)- 第九章 容错
- XStream使用
- HDU 1312 Red and Black(BFS,DFS)
- java设计模式-Builder创建者模式
- String类--单例模式等面试题
- 常用数组Array方法: indexOf、filter、forEach、map、reduce使用实例
- [编译原理]学习笔记(二)——文法和语言
- ODPS MapReduce入门 - 推荐商品
- 作业七—“南通大学教务管理系统微信公众号”用户体验分析
- 冒泡排序
- ubuntu的apt-get update失败
- Android4.4 增加的/system/priv-app system/delapp跟 原来的/system/app 有啥区别呢?
- [汇编学习]在代码段使用栈
- 实验7 BindService模拟通信