设计模式-适配器模式(Adapter)

  如果一个类要实现一个具有很多抽象方法的接口,但是本身只需要实现接口中的部分方法便可以达成目的,所以此时就需要一个中间的过渡类,但此过渡类又不希望直接使用,所以将此类定义为抽象类最为合适,再让以后的子类直接继承该抽象类便可选择性的覆写所需要的方法,而此抽象类便是适配器类。

看一下类图:
接口的适配器

这个很好理解,在实际开发中,我们也常会遇到这种接口中定义了太多的方法,以致于有时我们在一些实现类中并不是都需要。看代码:

public interface Sourceable {  

    public void method1();  
    public void method2();  
    public void method3(); 
}  

public abstract class Wrapper implements Sourceable{  

    public void method1(){}  
    public void method2(){}  
}  

public class SourceSub1 extends Wrapper {  
    public void method1(){  
        System.out.println("the sourceable interface's first Sub1!");  
    }  

    public void method3(){ }

} 

public class SourceSub2 extends Wrapper {  
    public void method2(){  
        System.out.println("the sourceable interface's second Sub2!"); 
    }  

    public void method3(){ } 

}

public class WrapperDemo {  

    public static void main(String[] args) {  
        Sourceable source1 = new SourceSub1();  
        Sourceable source2 = new SourceSub2();  

        source1.method1();  
        source1.method2();  
        source1.method3();  
        source2.method1();  
        source2.method2(); 
        source2.method3(); 
    }  
} 

测试输出:

the sourceable interface’s first Sub1!
the sourceable interface’s second Sub2!

文章目录