当前位置:首页 > 开发 > 研发管理 > 正文

10.适配器模式详解

发表于: 2011-11-13   作者:bingyingao   来源:转载   浏览次数:
摘要: 和尚接口: public interface 和尚 { void 吃斋(); void 打坐(); void 练武(); void 睡觉(); } 作为适配器的抽象类 天星 public abstract class 天星 implements 和尚 {
和尚接口:
 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.使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式
  两个类所做的事情相同或相似,但是具有不同的接口时要使用它

3.当客户类调用适配器的方法时,在适配器类的内部调用适配者类的方法,这个过程对客户类是透明的,客户类并不直接访问适配者类。因此,适配器可以使由于借口不兼容而不能交互的类可以一起工作(work together)。

4.当你实现某个接口,你必须实现它所有的方法。
如果这个接口有很多的方法,而你只需要关注其中的一个,在这种情况下,适配器就是一个最佳选择了。

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();    
}    
}  


适配器通过扩展源角色,同时实现目标接口,从而满足了同时提供220v,110v电压的要求。
JDK中体现:
(1)java.io.InputStreamReader(InputStream)
(2)java.io.OutputStreamWriter(OutputStream)

本文出自:
http://www.blogjava.net/toby/archive/2010/09/26/332939.html?opt=admin
另外一个比较形象的例子:
http://blog.csdn.net/zl3450341/article/details/6905635
http://www.cnblogs.com/forlina/archive/2011/06/27/2091105.html

10.适配器模式详解

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1.代理模式就是给一个对象提供一个代理对象,由这个代理对象控制对原对象的引用,便代理类在客户端
1. 概述   将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的
文章摘抄至http://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html 适配器模式把一
适配器模式 Adapter(别名Wrapper)模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器
五. 适配器模式 整理自 《java与模式》阎宏编著 1.意图: 把一个类的接口转换成客户端所期望的另一
适配器模式 Adapter(别名Wrapper)模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器
五. 适配器模式 整理自 《java与模式》阎宏编著 1.意图: 把一个类的接口转换成客户端所期望的另一
http://www.cnblogs.com/zhenyulu/articles/39386.aspx 结构模式(Structural Pattern)描述如何将类
适配器模式,属于结构型模式,其主要作用是将一个类的接口转换成客户希望的另外一个接口。适配器模式
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号