博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
7、适配器模式
阅读量:4972 次
发布时间:2019-06-12

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

一、适配器模式定义

  把一个类的接口变换成客户端所期待的另一种接口,使得原本由于接口不兼容而不能再一起工作的那些类可以一起工作。

 

二、适配器模式分类

  1、类的适配器模式(采用继承实现)

  2、对象适配器(采用对象组合方式实现)

 

三、应用场景

  1、系统需要使用现有的类,而这个类的接口不符合系统的需要

  2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很重复的接口。

  3、在设计中,需要改变多个已有子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器,而这不太实际。

 

四、类适配器

public interface Switch {    public void provide();}
public class Phone {    public void use(){        System.out.println("通电使用");    }}
public class Adaptor extends Phone implements Switch {    @Override    public void provide() {        System.out.println("提供电力");        super.use();    }}
public class Client {    public static void main(String[] args) {        Adaptor adaptor=new Adaptor();        adaptor.provide();    }}

 

五、对象适配器模式

  

public class Switch {    public void provide(){        System.out.println("提供电力");    }}
public class Phone {    public void use(){        System.out.println("有电使用");    }}
public class Adaptor extends Switch {    Phone myphone=new Phone();    @Override    public void provide() {        super.provide();//通过继承来调用Switch的方法        myphone.use();//通过聚合调用Phone的方法    }}
public class Client {    public static void main(String[] args) {        Adaptor adaptor=new Adaptor();        adaptor.provide();    }}

 

转载于:https://www.cnblogs.com/television/p/8525059.html

你可能感兴趣的文章
URLRewrite伪静态与AspNetPager分页控件的结合
查看>>
delphi通过函数名动态调用函数的方法(方便功能的扩展)
查看>>
js设计模式之单例模式
查看>>
嵌入式系统 Boot Loader 技术内幕
查看>>
内核 是什么?
查看>>
easycwmp的交叉编译
查看>>
FlexUnit单元测试
查看>>
如何设计产品【页游】
查看>>
AngularJS 源码分析2
查看>>
Java开发环境之Tomcat
查看>>
均值滤波去除图像噪声的matlab程序
查看>>
Matlab中size、numel、length、fix函数的使用
查看>>
Linux系统下实现远程连接MySQL数据库的方法教程
查看>>
磁盘分区和挂载
查看>>
文件修改
查看>>
软退回和硬退回的区别和联系
查看>>
关于异常处理
查看>>
OC 调用JS 代码 处理HTML5 实战
查看>>
LNMP
查看>>
C++读取系统当前时间 分类: C/C++ 2015...
查看>>