如何理解Java中的适配器模式适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题 。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式.
类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类 , 实现新的接口即可 。
对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例 , 在Wrapper类的方法中 , 调用实例的方法就行 。
接口的适配器模式:当不希望实现一个接口中所有的方法时 , 可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可 。
java中怎么去理解适配器模式?可否举一个示例 。谢谢!”适配器模式把一个类的接口变换成客户端所期待的另一种接口适配器模式java代码,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作“ 。
当然上面那个是教科书式的定义啦 。适配器模式java代码你可以从下面这个例子这样理解 , 比较直观适配器模式java代码:
用电器做例子,笔记本电脑的插头一般都是三相的 , 即除适配器模式java代码了阳极、阴极外,还有一个地极 。而有些地方的电源插座却只有两极 , 没有地极 。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用 。这时候一个三相到两相的转换器(适配器)就能解决此问题 。
Java里面无非就是继承类、实现接口这些啦,就是通过它们来实现上面的机制 。
两相电源插座是一个接口TwoPhase,里面有一个通电的方法plug2(),这在“适配器”模式中叫目标接口,就是说目标是让其他类“能插上两相的接口”,
三相电源插座也是一个接口ThreePhase,里面也有一个通电的方法plug3(),它有一个实现类 , 就是笔记本电脑类,叫NoteBook 。
如何实现适配呢?有三种方法(其实是对应适配器模式的几种情况):
1,作一个类,叫三相到两相的转换器(适配器)类是ThreeGoTwoAdapter , 同时实现两相电源插座接口TwoPhase和三相电源插座接口ThreePhase(其实就是提供plug2和plug3两个方法),然后就用NoteBook继承这个类就行了:
class NoteBook extends ThreeGoTwoAdapter
这样笔记本电脑也有plug2()方法了,表示能插上两相插头了,当然它用的是ThreeGoTwoAdapter的缺省实现 , 这种也叫“缺省适配器”模式 。
2,让NoteBook直接实现三相电源插座接口ThreePhase,这就强制NoteBook提供plug2()方法,表示能插上两相插头,这种叫“类适配器”模式 。
3,作一个三相电源笔记本类,ThreeAdapterNoteBook,让他实现ThreeAdaper接口,并持有NoteBook类对象的一个引用(术语叫做“委派”) , 让这个类对象构造时就把这个引用也传进去,也就是
class ThreeAdapterNoteBook implements ThreeAdapter{
private NoteBook notebook;
public ThreeAdapterNoteBook(NoteBook nb){
this.notebook=nb;
}
public void plug2() { this.nb.plug2(); }
public void plug3() { ....}
}
这种也叫“对象适配器”模式 。
Java中什么是适配器模式及其作用是什么??1、工厂模式:客户类和工厂类分开 。消费者任何时候需要某种产品 , 只需向工厂请求即可 。消费者无须修改就可以接纳新产品 。缺点是当产品修改时,工厂类也要做相应的修改 。如:如何创建及如何向客户端提供 。
推荐阅读
- 电信光猫连接无线路由器怎么设置wifi,电信光纤猫连接路由器怎么设置
- 路由器模式应该怎么选择,路由器模式选哪个最稳定
- 2014魔兽世界服务器,魔兽世界最新服务器人数
- c语言编码二次函数如何 c语言二次幂
- 什么剧在黄岛拍摄,哪些剧是在青岛拍的
- 服务器放在国外违法吗,服务器放在国外违法吗安全吗
- html5圆形进度条代码,html进度条元素
- mysql主键乱了怎么办 mysql主键语句
- 公司能注册公众号吗,公司注册公众号需要什么资料