Java与模式:适配器模式

简介:
目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
 
意图:
你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 (仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
 
(目的和意图是不变的,摘自《设计模式迷你手册》电子版)
 
下面是一个Java版的示例
 
一、原理图:
 
二、示例代码
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:46 
* 源角色 
*/
 
public  class Adaptee { 
     public  int get220v(){ 
        return 220; 
    } 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:23 
* 目标角色 
*/
 
public  interface Target { 
     int get110v(); 
     int get220v(); 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 14:43:07 
* 适配器角色:扩展源角色,实现目标角色,从而使得目标角色改动时候,不用改动源角色,只要改动适配器 
*/
 
public  class Adapter  extends Adaptee  implements Target{ 
     public  int get110v(){ 
         return 110; 
    } 
}
 
/** 
* Created by IntelliJ IDEA. 
* User: leizhimin 
* Date: 2008-8-2 15:00:31 
* 客户端 
*/
 
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电压的要求。
 
 本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/90767,如需转载请自行联系原作者
相关文章
|
19天前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
30 4
|
1月前
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
14 0
|
1月前
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
13 0
|
1月前
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
12 0
|
1月前
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
14 0
|
1月前
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
19 0
|
1月前
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
15 0
|
1月前
Servlet使用适配器模式进行增删改查案例(Dept.java)
Servlet使用适配器模式进行增删改查案例(Dept.java)
19 0
|
1月前
Servlet使用适配器模式进行增删改查案例(Emp.java)
Servlet使用适配器模式进行增删改查案例(Emp.java)
11 0
|
1月前
Servlet使用适配器模式进行增删改查案例(IEmpService.java)
Servlet使用适配器模式进行增删改查案例(IEmpService.java)
14 0