zoukankan      html  css  js  c++  java
  • 设计模式之适配器模式

    适配器相当于一种中间件,转换器。

    举个例子,当我们的电脑想再连接一个显示屏,但显示屏只有一个VGA口和VGA线,而我们的电脑只有一个HDMI口,那我们就需要一条HDMI转VGA的转换线来连接。

    适配器模式有两种:类适配器、对象适配器,接口适配器

    1、类适配器模式:

    原理:通过继承来实现适配器功能。

    当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访问的接口A,这样我们就能继续访问当前接口A中的方法,然后再继承接口B的实现类BB,这样我们可以在适配器P中访问接口B的方法了,这时我们在适配器P中的接口A方法中直接引用BB中的合适方法。

    2、对象适配器模式:

    原理:通过组合来实现适配器功能

    当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了合适的方法,我们又不能改变访问接口A,在这种情况下,我们可以定义一个适配器p来进行中转,这个适配器p要实现我们访问的接口A,这样我们就能继续访问当前接口A中的方法,然后在适配器P中定义私有变量b(对象)(B接口类型的变量),再定义一个带参数的构造器用来为对象b赋值,再在A接口的方法实现中使用对象b调用其来源于B接口的方法。

    3、接口适配器模式:

    原理:通过抽象类来实现适配

    当存在这样一个接口,其中定义了N多的方法,而我们现在却只想使用其中的一个到几个方法,如果我们直接实现接口,那么我们要对所有的方法进行实现,哪怕我们仅仅是对不需要的方法进行置空,也会导致这个类变得臃肿,调用也不方便,这时我们可以使用一个抽象类作为中间件,即适配器,用这个抽象类实现接口,而在抽象类中所有的方法都进行置空,那么我们在创建抽象类的继承类,而且重写我们需要使用的那几个方法即可。

  • 相关阅读:
    关于使用wcf架构分布式系统的一点想法
    vs2012 远程调试服务器上iis下的程序
    F#定义方法参数
    产生不重复的随机数
    巧在C#中设置多维动态数组,可以动态增加及删除
    C#时间相减
    css控制图片大小的方法
    常用网络命令
    DEDE SQL 常用语句
    未审核文档发布时间的自动更改方法for DEDEcms v5.3(修正版)
  • 原文地址:https://www.cnblogs.com/one-apple-pie/p/10434525.html
Copyright © 2011-2022 走看看