JAVA 设计模式-适配器模式

为何需要适配器模式?

适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的 电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用。这时候一个三相到两相的转换器(适配器)。

在适配器中,有三个类,
  ●  目标(Target)角色:这就是所期待得到的接口。注意:由于这里讨论的是类适配器模式,因此目标不可以是类。
  ●  源(Adapee)角色:现在需要适配的接口。
  ●  适配器(Adaper)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。

Adapee类可以看做是基类,现在需求要实现一些新的功能的时候,我们不去修改Adapee这个类,而是使用interface也就是Target这个目标接口,让一个新的类Adapter去实现这个借口,即完成了新的功能的添加,但如果还想实现基类的功能的时候,target中还需要有基类的方法,这样,新的类有可以复写的target中的方法,又有基类中方法的实现,这样就做到了在旧功能存在的情况下实现新功能。

/*这个时目标接口,原来类的方法,和将要实现的方法都在其中*/

public interface Target {  
     /** 
      * 这是源类Adaptee也有的方法 
      */
     public void sampleOperation1();   
     /** 
      * 这是源类Adapteee没有的方法 
      */
     public void sampleOperation2();   
}
/*此类是原类,包含已经实现的方法*/

public class Adaptee {  
          
     public void sampleOperation1(){}  
      
}
/*此类既实现了原类的方法,又添加了新的方法*/
public
class Adapter extends Adaptee implements Target {  
     /** 
      * 由于源类Adaptee没有方法sampleOperation2() 
      * 因此适配器补充上这个方法 
      */
     @Override
     public void sampleOperation2() {  
         //写相关的代码  
     }  
      
}


你可能感兴趣的:(JAVA 设计模式-适配器模式)