设计模式--适配器模式

来源:互联网 发布:淘宝直通车充值记录 编辑:程序博客网 时间:2024/06/05 05:18
适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、
接口的适配器模式。首先,我们来看看类的适配器模式, 核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功
能扩展到Targetable里。
代码:
 public class Source {public void method1(){System.out.print("this is original method!");}}public interface Targetable {  public void method1();  public void method2();}public class Adapter extends Source implements Targetable {@Overridepublic void method2() {// TODO Auto-generated method stubSystem.out.print("this is the targetable method!");}}public class AdapterTest {public static void main(String[] args) {// TODO Auto-generated method stub  Targetable target=new Adapter();  target.method1();  target.method2();}}输出:this is original method!this is the targetable method!这样Targetable接口的实现类就具有了Source类的功能。对象的适配器模式基本思路和类的适配器模式相同,只是将Adapter类作修改,这次不继承Source类,而是持有Source
类的实例,以达到解决兼容性的问题。我们修改Adapter类的源码:
public class Wrapper implements Targetable {        private Source source;      public Wrapper(Source source){          super();          this.source = source;      }      @Override      public void method2() {          System.out.println("this is the targetable method!");      }        @Override      public void method1() {          source.method1();      }  }  测试类:public class AdapterTest {        public static void main(String[] args) {          Source source = new Source();          Targetable target = new Wrapper(source);          target.method1();          target.method2();      }  } 输出:this is original method!this is the targetable method!

0 0
原创粉丝点击