设计模式 — 结构型模式 适配器模式

Adapter 适配器

已有接口A和B,在不修改A、B的情况下,A要为B所用,这个时候需要一个中间人来承担将A的接口封装成为B可以使用的接口,这里的“中间人”就是适配器——adapter

目的

转换接口

优点

  • 无需改动现有代码
  • 便于在原有系统上进行扩展

实例

CoyoteAdapter

CoyoteAdapter将tomcat 的connector和container进行解耦,connector和container本身属于不同的组件,使用adapter可以方便的更换container而不影响connector

实现方式

  • 组合:在单继承语言中使用
  • 继承:在多继承的语言里面就可以实现
UML图

adapter图

代码实现
package org.lep.test.adapter;

/**
 * Created by lack on 17-1-3.
 */
public interface Target {
    public void service();
}

package org.lep.test.adapter;

/**
 * Created by lack on 17-1-3.
 */
public class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee){
        this.adaptee = adaptee;
    }

    @Override
    public void service() {
        adaptee.serve();
    }
}

package org.lep.test.adapter;

/**
 * Created by lack on 17-1-3.
 */
public class Adaptee {
    public void serve(){
        System.out.println("adaptee`s serve....");
    }
}

package org.lep.test.adapter;

/**
 * Created by lack on 17-1-3.
 */
public class Test {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target adapter = new Adapter(adaptee);

        adapter.service();

    }
}

转载于:https://www.cnblogs.com/sunshine-2015/p/6250582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值