10.アダプタモードの詳細


和尚インタフェース:

 public   interface      { 

 void   (); 

 void   (); 

 void   (); 

 void   (); 

}  

アダプタとしての抽象的な天星



 public   abstract   class     implements      { 

 public   void   ()   { 



}  

 public   void   ()   { 


}  

 public   void   ()   { 


}  

 public   void   ()   { 


}  


そして具体的に魯智深を実現します

 public   class     extends      { 


 public   void   ()  { 


}  

1.アダプターモードここでは、魯智深はお坊さんのすべての機能、例えば吃斎()を持っていて、座って()いますが、練武という機能は魯智深と他のお坊さんとは異なるので、個別に配置します.
2.既存のクラスを使用しますが、インタフェース、つまりその方法があなたの要求と異なる場合は、アダプタモードを使用することを考慮する必要があります.
2つのクラスが行うことは同じか似ていますが、インタフェースが異なる場合に使用します.
3.クライアントクラスがアダプタのメソッドを呼び出すと、アダプタクラスの内部でアダプタークラスを呼び出すメソッド.このプロセスはクライアントクラスに対して透過的であり、クライアントクラスはアダプタークラスに直接アクセスしない.したがって、アダプタは、言い訳が互換性がないため対話できないクラスを一緒に動作させることができる(work together).
4.インタフェースを実装するには、すべての方法を実装する必要があります.
このインタフェースには多くの方法があり、そのうちの1つに注目する必要がある場合は、アダプタが最適です.
5.アダプタはアダプタのようなものです
一部のパラメータでは、一部のインタフェースタイプが受け入れられない場合があります.
このときアダプタを使ってこれらのインタフェースを、いくつかの処理を経て別のインタフェースタイプを実現すれば、接続できます.
二、/**/


/**   
*     
*/    
public class Adaptee {    
public int get220v(){    
return 220;    
}    
}   
  

/** */


/**   
*     
*/    
public interface Target {    
int get110v();    
int get220v();    
}   

/** */

/**   
*  : , , , ,    
*/    
public class Adapter extends Adaptee implements Target{    
public int get110v(){    
return 110;    
}    
}   

 
/** */


/**   
*     
*/    
public class Client {    
public static void main(String rags[]) {    
new Client().test();    
}   
  
public void test() {    
Target target = new Adapter();    
int v1 = target.get110v();    
int v2 = target.get220v();    
}    
}  

アダプタは、ソースキャラクタを拡張し、ターゲットインタフェースを実現することで、220 v、110 vの電圧を同時に提供する要件を満たします.
JDKでは、
(1)java.io.InputStreamReader(InputStream)
(2)java.io.OutputStreamWriter(OutputStream)
この文書は次のとおりです.
http://www.blogjava.net/toby/archive/2010/09/26/332939.html?opt=admin
もう1つの比較的イメージの例:
http://blog.csdn.net/zl3450341/article/details/6905635
http://www.cnblogs.com/forlina/archive/2011/06/27/2091105.html