博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(八)——适配器模式
阅读量:6711 次
发布时间:2019-06-25

本文共 948 字,大约阅读时间需要 3 分钟。

  hot3.png

一、定义

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

二、要素

1.Target目标

即客户端期望的接口

2.Adaptee源

即原本不匹配的接口

3.Adapter适配器

三、代码实例

//适配目标

public interface Target {

    public void targetShow();
}

//适配源

public class Adaptee {

    protected void adapteeShow(){
        System.out.print("适配器源方法\n");
    };
}

//适配器

public class Adapter extends Adaptee implements Target{

    public void targetShow() {

        System.out.print("适配器方法\n");
    }

}

//客户端

public class Client {

    public static void main(String[] args) {

        Adapter adapter = new Adapter();
        adapter.adapteeShow();//适配器源方法
        adapter.targetShow();//目标方法
    }
}

四、优点

1.可以让两个没有任何关系的类在一起运行

2.提高类的复用度,源角色在原来的位置还可以正常使用,而目标角色也可以作为新的成员。

五、使用场景

在详细设计阶段最好不要考虑它,它是解决上线阶段项目的问题;适配器模式是一种“补救”模式,通常解决接口不兼容的问题,百分百完美设计是用不到的。

六、项目实例

项目中用到不同手机厂商提供的功能SDK(wifi、移动网络、usb禁用、照相、电话、短信、锁屏等等),但每个厂商提供的SDK中都满足了功能的需求,但每个功能的接口是不一样的(方法名、参数等等),而在我们自己的项目中,为了更好的支持上层业务需求,需要我们对上层提供统一的标准接口,这里就用到了适配器模式,用适配器将每个厂商提供的SDK接口转为标准的统一接口。

转载于:https://my.oschina.net/kun123/blog/726585

你可能感兴趣的文章
Ossim下RRDTool实战
查看>>
向服务器请求XML数据时中文乱码
查看>>
微信消息接口发送信息到分组和用户,错误代码40003和40008
查看>>
HTTP状态码 错误列表
查看>>
scala依赖限制
查看>>
Font Awesome
查看>>
Dubbo消费者
查看>>
java序列化和持久化
查看>>
thinkphp调试
查看>>
虚拟化中虚拟机处理器核数与物理主机cpu的关系
查看>>
redmine不能发邮件及错误处理“DSN: Service unavailable ”
查看>>
flex学习笔记 flex中的一些错误
查看>>
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type
查看>>
MYSQL: mysqlbinlog读取二进制文件报错read_log_event()
查看>>
随机产生由特殊字符,大小写字母以及数字组成的字符串,且每种字符都至少出现一次...
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
java21:捕鱼达人
查看>>
SCCM 2012 R2 实战系列(十)—统一部署Office
查看>>
Zabbix 服务端搭建
查看>>