房天下网站建设,南昌网站开发公司电话,移动无线宽带怎么续费,景区网站建设费用简介#xff1a;【Java设计模式】接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是#xff1a;向客户提供接口#xff0c;并使用现有的类所提供的服务#xff0c;以满足客户的需求。 或者说#xff0c;现在有classA的方法满足客户的部分要求#xff0c;将另一部分需…简介【Java设计模式】接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是向客户提供接口并使用现有的类所提供的服务以满足客户的需求。 或者说现在有classA的方法满足客户的部分要求将另一部分需求抽象【Java 设计模式】接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是向客户提供接口并使用现有的类所提供的服务以满足客户的需求。或者说现在有class A的方法满足客户的部分要求将另一部分需求抽象为interface B那么就要有Adapter来使得class A和interface B相互结合满足客户全部需求。通俗的理解在party上我想去搭讪一个女生Jerry。但是我的英语很烂于是我拿了个翻译器翻译器就是我和Jerry之间的Adapter让我和Jerry可以很好的交谈。一类适配器示例代码public interface RequiredInterface {/*** 这是客户需要的方法*/public void requireMethod();}123456public class ExistingClass {/*** 这是现有的方法*/public void usefulMethod(){}}1234567适配器角色Adapter扩展了ExistingClass 同时又实现了RequiredInterface 接口。由于ExistingClass 没有提供requireMethod()方法而RequiredInterface 又要求这个方法因此适配器角色Adapter实现了这个方法。public class Adapter extends ExistingClass implements RequiredInterface {/*** 由于源类ExistingClass没有方法requireMethod()* 因此适配器补充上这个方法*/Overridepublic void requireMethod() {//写相关的代码}}12345678910二对象适配器 类适配器通过创建子类来实现适配在设计类适配器的时候新的适配器类可以实现期望的接口并扩展已有的类。而对象适配器则是用委托的方式。有两种方式一种是实现接口的方式一种是继承类的方式。实现目标接口 示例代码public interface RequiredInterface {/*** 这是客户需要的方法*/public void requireMethod();}123456public class ExistingClass {/*** 这是现有的方法*/public void usefulMethod(){}}1234567public class Adapter implements RequiredInterface{private ExistingClass exist;public Adapter(ExistingClass exist){this.exist exist;}/*** 源类ExistingClass有方法usefulMethod* 因此适配器类直接委派即可*/public void usefulMethod(){this.exist.usefulMethod();}/*** 由于源类ExistingClass没有方法requireMethod()* 因此适配器补充上这个方法*/Overridepublic void requireMethod() {//写相关的代码}}12345678910111213141516171819202122继承目标类 示例代码public class RequiredClass {/*** 这是客户需要的方法*/public void requireMethod();}123456public class ExistingClass {/*** 这是现有的方法*/public void usefulMethod(){}}1234567public class Adapter extends RequiredClass {private ExistingClass exist;public Adapter(ExistingClass exist){this.exist exist;}/*** 源类ExistingClass有方法usefulMethod* 因此适配器类直接委派即可*/public void usefulMethod(){this.exist.usefulMethod();}/*** 由于源类ExistingClass没有方法requireMethod()* 因此适配器补充上这个方法*/public void requireMethod() {//写相关的代码}}123456789101112131415161718192021三接口的适配器模式接口的适配器是这样的有时我们写的一个接口中有多个抽象方法当我们写该接口的实现类时必须实现该接口的所有方法这明显有时比较浪费因为并不是所有的方法都是我们需要的有时只需要某一些此处为了解决这个问题我们引入了接口的适配器模式借助于一个抽象类该抽象类实现了该接口实现了所有的方法而我们不和原始的接口打交道只和该抽象类取得联系所以我们写一个类继承该抽象类重写我们需要的方法就行。示例代码public interface RequiredInterface{public void requireMethod1();public void requireMethod2();} 12345public abstract class AbstractRequiredClass implements RequiredInterface{public void requireMethod1(){}public void requireMethod2(){}} 12345public class Adapter1 extends AbstractRequiredClass {public void requireMethod1(){System.out.println(the RequiredInterface interfaces first requireMethod1!);}} 12345public class Adapter2 extends AbstractRequiredClass {public void requireMethod2(){System.out.println(the RequiredInterface interfaces first requireMethod2!);}} 12345个人觉得适配器模式中的这三种模式是挺灵活的比如复用性系统需要使用现有的类而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。还有扩展性在实现适配器功能的时候可以调用自己开发的功能从而自然地扩展系统的功能。 不过在使用适配器时也要注意到除非对系统的架构很清楚否则过多的使用适配器会让系统非常零乱不易整体进行把握。