• 适配器模式探讨


     

    要点

    ² 一个类的程序设计接口不太方便于某一个专用场合;

    ² 具备共同特征的类有很多,也就是有共同特征,且不适用于同样的专有场合;

    ² 可以把一个类的程序设计接口转换成另一个接口,这就是适配器模式;

    ² 适配器模式通过两种方法可以实现:第一是从原有的类派生新类,然后添加新的一致的方法,使得新类可以符合需要的接口;第二种方法是通过对象组合,也就是适配器类有一个原有类型的数据成员,把它包装成另一组使用接口,这种方法隐藏了原有类型的接口;

    ² 适配器模式作为结构型模式,特点是每个类型都有一个适配器,无论是派生还是组合,都是一个类型包装成另一个类型接口,而不是多个类型接口组合成一个接口,所以适配器是结构型模式里面的简单情形。

    用途

    例如,C#提供的winform控件ListBox,其集合数据的操作必须通过属性Items来操作。例如,Items.Add(),Items.Clear()等等。为了直接方便地使用,而不是通过Items,我们可以通过适配器模式把这些接口转换成另外一组接口来使用。

    适配器模式正如平时所用的适配器,例如计算机经常使用的网络适配器,键盘适配器。还如原来的大口接头的键盘和小口接口使用的时候采用转接线,本身就是适配器的很好例子。

                                                                   图1
    如图1所示,是依据两种方法构造的适配器。通过继承构造的叫类适配器,而通过组合构造的叫对象适配器。对象适配器的优点是可以隐藏原有类型的接口,因为目的就是把原有的类型接口包装成另外的一组接口,因此隐藏起来要好一些。但是在只包装部分接口的情况下,就不能隐藏原有类型接口了。
                                                                      图2
      图2所示,是适配器类型的更进一步创建方法。在某些情形下,情况可能比较复杂,如果采用图1所示的方法,对系统的扩展性不利,而且耦合会太紧密。通过抽象方法定义一个接口,这个就是抽象层,然后客户程序DemoWinForm与这个抽象层发生耦合,也就是直接使用这个接口,而不是实际的类型。

    这样一来,如果添加新的适配器将非常方便,而且如果适配器发生变更,也无需修改客户程序。客户程序通过抽象层消除了与实际类型的耦合。

  • 相关阅读:
    个人项目(Word Count Java)
    自我介绍+软工5问
    第六次实践
    第五次实践作业
    第四次实践作业
    第三次实践作业
    第二次实践作业
    第1次实践作业
    第06组 Beta版本演示
    第06组 Beta冲刺(4/4)
  • 原文地址:https://www.cnblogs.com/worldreason/p/1214529.html
Copyright © 2020-2023  润新知