设计模式-接口型模式-适配器模式

把一个类的接口转换成客户端所期待的另一种接口,从而使原接口不匹配而无法在一起工作的两个类能在一起工作

功能类似但是接口不同这时就可以使用适配器,一般情况下在前期第一时间考虑通过重构统一接口。比如在使用第三方开发组件的时候,自己的系统接口与组件接口不同,不用为了迎合去改自己的接口可以使用适配器模式。

Target类目标接口客户端可识别,Adaptee需要适配的类,Adapter适配器类

//类适配器 class Adaptee{ public void sepcialMethod(){ System.out.println("yyx!"); } } interface Target(){ public void normalMethod(); } class actualTarget implements Target(){ public void normalMethod(){ System.out.println("yyx"); } } class Adapter extends Adaptee implements Target(){ public void normalMethod(){ super.sepcialMethod(); } } //对象适配器 class Adapter implements Target(){ private Adaptee adaptee; public Adapter(Adaptee adaptee){ this.adaptee = adaptee; } poublic void normalMethod(){ this.adaptee.sepecialMethod(); } }

JAVAIO中有许多用到了对象适配器

InputSreamReader是适配器类 StreamDecoder(传入InputStream,这个类将InputStream从字节流变成了字符流)是适配者 Reader是目标类 将InputStream和Reader适配。

StringReader是适配器类 String是适配者 Reader是目标类 将String和Reader适配。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjgpx.html