java 适配器模式

简介:

适配器:基于现有类所提供的服务,向客户提供接口,以满足客户的期望

                                                       《Java设计模式》

一、类适配器:

OtherOperation(已存在所需功能的类):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:39:18
 */
public class OtherOperation {
    public int add(int a, int b){
        return a + b;
    }
}
复制代码

Operation(为所要实现的功能定义接口):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:40:12
 */
public interface Operation {
    public int add(int a, int b);
}
复制代码

OperationAdapter(适配器):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:40:41
 * 对象适配器
 */
public class OperationAdapter extends OtherOperation implements Operation{


}
复制代码

-----------------------------------------------------------------------------------------------------------------------------------

二、对象适配器:

假如客户接口期望的功能不止一个,而是多个。
由于java是不能实现多继承的,所以我们不能通过构建一个适配器,让他来继承所有原以完成我们的期望,这时候怎么办呢?只能用适配器的另一种实现--对象适配器:
符合java提倡的编程思想之一,即尽量使用聚合不要使用继承。

OtherAdd和OtherMinus(已存在功能的两个类):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:50:14
 */
public class OtherAdd {
    public int add(int a, int b){
        return a + b;
    }
}
复制代码
复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:50:46
 */
public class OtherMinus {
    public int minus(int a, int b){
        return a - b;
    }
}
复制代码

Operation(为所要实现的功能定义接口):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:51:59
 */
public interface Operation {
    public int add(int a, int b);
    public int minus(int a, int b);
}
复制代码

OperationAdapter(通过适配类的对象来获取):

复制代码
/**
 * @author com.tiantian
 * @version 创建时间:2012-11-21 下午4:52:36
 */
public class OperationAdapter implements Operation{
    private OtherAdd otherAdd;
    private OtherMinus otherMinus;
    
    public OtherAdd getOtherAdd() {
        return otherAdd;
    }

    public void setOtherAdd(OtherAdd otherAdd) {
        this.otherAdd = otherAdd;
    }

    public OtherMinus getOtherMinus() {
        return otherMinus;
    }

    public void setOtherMinus(OtherMinus otherMinus) {
        this.otherMinus = otherMinus;
    }

    @Override
    public int add(int a, int b) {
        return otherAdd.add(a, b);
    }

    @Override
    public int minus(int a, int b) {
        return otherMinus.minus(a, b);
    }

}
复制代码
本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/archive/2012/11/21/2781050.html ,如需转载请自行联系原作者
相关文章
|
5月前
|
设计模式 Java API
重构旧代码的秘诀:用设计模式 - 适配器模式(Adapter)给Java项目带来新生
【4月更文挑战第7天】适配器模式是解决接口不兼容问题的结构型设计模式,通过引入适配器类实现目标接口并持有不兼容类引用,实现旧代码与新接口的协作。适用于处理兼容性问题、整合遗留代码和集成第三方库。应用时,识别不兼容接口,创建适配器类转换方法调用,然后替换原有引用。注意保持适配器简单、使用组合和考虑扩展性。过度使用可能导致系统复杂和维护成本增加,应谨慎使用。
84 4
|
5月前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
89 4
|
5月前
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
Servlet使用适配器模式进行增删改查案例(IDeptService.java)
|
5月前
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(EmpDaoImpl.java)
|
5月前
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
Servlet使用适配器模式进行增删改查案例(DeptDaoImpl.java)
|
5月前
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
Servlet使用适配器模式进行增删改查案例(IDeptDao.java和IEmpDao.java)
|
5月前
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
Servlet使用适配器模式进行增删改查案例(IBaseDaoUtil.java)
|
5月前
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
Servlet使用适配器模式进行增删改查案例(BaseDao.java)
|
8天前
|
设计模式 Java 程序员
Java设计模式-适配器模式(8)
Java设计模式-适配器模式(8)
|
5月前
|
设计模式 Java
【设计模式】JAVA Design Patterns——Adapter(适配器模式)
【设计模式】JAVA Design Patterns——Adapter(适配器模式)
下一篇
无影云桌面