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

  • 相关阅读:
    设置VS2017背景图片
    NuGet的简单使用
    C#6.0,C#7.0新特性
    openFileDialog的Filter属性设置
    C# 获取当前路径7种方法
    正则表达式总结
    IDEA设置switch/case代码块自动补齐
    CentOS7使用yum安装RabbitMQ
    vue react 路由history模式刷新404问题解决方案
    @Component, @Repository, @Service的区别
  • 原文地址:https://www.cnblogs.com/one-apple-pie/p/10434525.html
Copyright © 2011-2022 走看看