适配器模式

来源:互联网 发布:js计算商品总金额 编辑:程序博客网 时间:2024/06/03 01:40

1.定义

将一个类的接口转换成客户希望的另外一个接口。

2.角色

目标(Target):定义一个客户端使用的特定接口。

客户(Client):使用目标接口,与和目标接口一致的对象合作。

被适配者(Adaptee):一个现存需要匹配的接口。

适配器(Adapter):负责将Adaptee的接口转换成Target的接口。适配器是一个具体的类,这是本模式的核心。由此可见,当客户端调用Adapter接口的时候,Adapter便会调用Adaptee操作相应请求,该模式现实了接口的适配过程。

3.分类

类适配器,类图如下:

代码如下:

package com.designpattern.core;/** * 被适配者 *  * @author wujinsong */public class Adaptee {        public void specialRequest() {        System.out.println("接受请求");    }}


package com.designpattern.core;/** * 通过组合关系实现适配器类 *  * @author wujinsong */public class Adapter implements Target {        @Override    public void request() {        Adaptee adaptee = new Adaptee();        adaptee.specialRequest();    }}

package com.designpattern.core;/** * 目标接口 *  * @author wujinsong */public interface Target {    public void request();}

package com.designpattern.core;/** * 客户 *  * @author wujinsong */public class Client {        public static void main(String[] args) {        Target target = new Adapter();        target.request();    }}


对象适配器,类图如下:

代码如下,相比类适配器,代码只有Adapter改变了,如下:

package com.designpattern.core;/** * 通过组合关系实现适配器类 *  * @author wujinsong */public class Adapter extends Adaptee implements Target {        @Override    public void request() {        this.request();    }}


0 0
原创粉丝点击