zoukankan      html  css  js  c++  java
  • 《设计模式》-适配器模式

      一个周末又度过了,不过好像过得有点累,不过再类也要坚持学习。呵呵!

      今天就要开始学习“结构模式”中的 适配器模式了。 先来看看定义。

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

      适配器模式有两种形式:

      一、类的适配器模式。

      

      目标角色(Target):这是客户端所期待的接口。因为 C#不支持多继承,所以 Target 必须是接口,不可以是类。

      源角色(Adaptee):需要适配的类。

      适配器角色(Adapter):把源接口转换成目标接口。这一角色必须是类。

      二、对象的适配器模式。

      

      目标角色(Target):这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

      源角色(Adaptee):需要适配的类。

      适配器角色(Adapter):通过在内部包装(Wrap)一个 Adaptee 对象,把源接口转换成目标接口。

      

      在以下各种情况下可以使用适配器模式:

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

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

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

      Adapter 模式在实现时有以下这些值得注意的地方:

      1、 目标接口可以省略,模式发生退化。但这种做法看似平庸而并不平庸,它可以使 Adaptee不必实现不需要的方法(可以参考 Defa 模式)。其表现形式就是父类实现缺省方法,而子类只需实现自己独特的方法。这有些像模板模式。

      2、 适配器类可以是抽象类。

      3、 带参数的适配器模式。使用这种 ,适配器类可 数返还一个合适的实例给客户端。

      额 这个适配器模式看完了,总结一下:从定义和事例来看,这个适配器就是 让本身不支持某一种方法的接口去支持那一种方法,而实现的关键就在于多了一个2者之间的派生类。而在这个派生类中去调用了那个本色没有的方法。从而达到了掉用同一个接口 实现了不属于这个接口的方法。 说是 就好比变压器一样,本来传入电压是220V 但是通过不同的变压器可以变成你想要的电压。

      

  • 相关阅读:
    spark发现新词
    树的算法总结
    机器学习树的算法总结
    Spark Streaming实例
    ubuntu上通用解压方式
    论MYSQL数据库数据错误的处理
    macOS Sierra上Opencv的安装与使用
    phpstudy2016 redis扩展 windows
    细说PHP7
    正则表达式与.htaccess的配置
  • 原文地址:https://www.cnblogs.com/zyj469470971/p/3189702.html
Copyright © 2011-2022 走看看