博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构型模式—适配器模式
阅读量:4282 次
发布时间:2019-05-27

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

定义:

将一个类(Adaptee)的接口转换成客户(Client)希望的另外一个接口(Target)。

  • 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
  • 需要适配的类(Adaptee):需要适配的类或适配者类。
  • 适配器(Adapter):使得一个东西适合另一个东西的东西。百度中定义为:接口转换器。通过包装一个需要适配的对象,把源接口转换成目标接口。

为什么要适配:需要的东西已做好,但是不能用,短时间又不能改造,想办法适配它。

作用:

使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
(姚明说汉语,其他队员和教练说英语,他们不能沟通交流,团队就不能很好地合作。有了翻译,团队协作成为可能。)

应用:

复用一些现存的类,但是接口又与复用环境要求不一致。

分类:

类适配器模式/对象适配器模式

实现方式:

class Adapter:Target     {        //内部包装一个Adaptee对象,表面调用Target的方法Request,实际调用Adaptee的方法SpecificRequest。        private Adaptee adaptee = new Adaptee();        public override void Request()        {            adaptee .SpecificRequest ();        }    }
class Program    {        static void Main(string[] args)        {            //外界看到的是统一的接口,Request()            Target target = new Adapter();            target.Request();            Target target2=new Target();            target2.Request();                    }    }

使用条件:

两个类都不太容易修改的时候。
某系统使用第三方开发组件,这个组件的接口与系统的接口不相同。

优点:

  • 调用统一接口
  • 复用

类图:

你可能感兴趣的文章
Android 中处理POWER/HOME流程
查看>>
Android4.x 如何处理Power按键
查看>>
sys/class文件节点的制作
查看>>
创建一个简单的device_create_file文件节点
查看>>
android linux 休眠 深度睡眠 查看 方法 调试
查看>>
ubuntu mount cifs
查看>>
一个简单的framebuffer的显示使用例子
查看>>
inux下串口编程简单实例
查看>>
SELinux app权限配置
查看>>
Linux下的串口编程
查看>>
pthread_create Linux函数 线程创建
查看>>
linux创建线程之pthread_create
查看>>
怎样添加earlysuspend到一个普通驱动中
查看>>
怎样通过framebuffer来传递关屏信息
查看>>
BootLoader启动过程分析
查看>>
Linux获取/dev/input目录下的event对应的设备
查看>>
android性能测试工具dumpsys命令的用法
查看>>
Android性能测试常用命令
查看>>
性能测试常用的linux命令
查看>>
Linux性能测试 命令大全
查看>>