Java适配器模式

 

适配器模式是一种结构型设计模式。适配器模式的思想是:

把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。

下面是实例代码:

首先是需要适配的源

/**
 * 需要适配的源
 */
public class Adaptee {

    public void method2(){
        System.out.println("method2");
    }
}

 目标接口:

/**
 * 目标接口
 */
public interface Target {

    void method1();

}

目标接口的实现类:

public class TargetImpl implements Target {

    @Override
    public void method1() {
        System.out.println("mehtod1");
    }

}

然后是适配器:

public class Adapter extends Adaptee implements Target {

    private Target target;

    Adapter(){
        this.target = new TargetImpl();
    }

    @Override
    public void method1() {
       this.target.method1();
    }


}

是匹配器测试代码:

public class AdapterTest {


    public static void main(String[] args) {
        // 假设没有适配器 TargetImpl 和 Adaptee 是毫无关联的两个类,他们的方法是不能使用同一个对象来调用的
        Adaptee adaptee = new Adaptee();
        adaptee.method2(); // adaptee只能调用menthod2

        // 但是有了适配器,argetImpl 和 Adaptee 就能产生关联,他们的方法都能用同一个类的对象调用
        Adapter adapter = new Adapter();
        // 适配器中能调用它连接的两个对象的所有方法
        adapter.method1();
        adapter.method2();



    }
}

从上面的代码看出:

如果想让两个毫无关联的类产生联系,那么我们就要使用适配器模式,

很多的情况下,我们的源也可以是实现接口的某一个类,适配器是仅仅实现两个接口的类(因为java对类是单继承的,对接口则是多实现的),这样的话,我们的适配器不仅仅使两个类产生关联,多个类也能使用适配器产生关联。

而且,我们也不建议区创建对象,结合工厂模式,我们能用工厂去完成适配器的创建,然后我们拿到适配器去调用关联的类的公共方法。

适配器模式的优点:

开闭原则,适配器扩展了源和适配对象,但是又没有修改原来的源和目标对象。

单一职责,这不做过多的说明。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值