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

    一、适配器模式介绍
    适配器模式:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
    适配器模式有着良好的OO设计原则,使用对象组合,以修改的接口包装被适配者,此外这样的做法还有额外的有点,被适配者的任何子类,都可以搭配适配器使用。

    二、适配器模式类图

     适配器模式分为两种:对象适配器和“类”适配器
    (1)类适配器不是使用组合来适配被适配者,而是继承被适配者和目标类
    (2)对象适配器是使用组合来适配被适配者的。

    对象适配器类图如下:

     类适配器类图如下:

    三、问题

    对象适配器和类适配器使用两种不同的适配方法,这两种实现的差异如何影响适配器的弹性?
    (1)对象适配器因为使用的是组合,所以该方式不仅可以适配某个类,也可以适配该类的任何子类,需要重新实现适配类的所有方法。
    类适配器采用的是继承方式,能适配某个特定的被适配的类,且不需要重写适配整个被适配者的方法;
    (2)对象适配器需要一个适配类和一个被适配的类;而类适配器则不需要被适配的类,仅仅一个适配器类即可。
    (3)如果被适配者加入了新的行为,对象适配器的适配类则需要做相应的改动,而类适配器则不需要。

    四、总结

    1) 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器
    2) 适配器改变接口以符合客户的期望
    3) 实现一个适配器可能需要一番功夫,也可能不费功夫,视目标接口的大小与复杂而定
    4) 适配器模式有两种形式:类适配器和对象适配器,类适配器需要多重继承
    5) 适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增加新的行为和责任;

  • 相关阅读:
    02 nginx 进程结构_热部署_nginx虚拟主机
    Go基础
    01 nginx 概述及安装
    项目--微信小程序
    小程序框架
    常用数据集合
    看正月点灯笼老师的笔记—线段树
    并查集—汇总
    看正月点灯笼老师的笔记—qsort 和 bsearch
    看正月点灯笼老师的笔记—BFS和DFS ( 3 )
  • 原文地址:https://www.cnblogs.com/lovegrace/p/12177220.html
Copyright © 2011-2022 走看看