zoukankan      html  css  js  c++  java
  • [设计模式]设计模式

    在进行控件封装时,通常会定义一个通用操作的接口,只要满足此接口,都可以使用控件承载其功能,但是当需要扩展控件基本功能的时候,难免会在此接口中添加其他的定义,那么实现了此接口的所有类定义都必须的添加新的方法,改动非常大。

    通常的做法是使用一个抽象类实现此接口,其他需要扩展此接口的类都继承自此抽象类,而非直接继承接口本身,这样就算接口添加再多的方法,只需要在抽象类中添加对应方法即可,不影响子类。

    伪代码描述:

    interface CustomeViewInterface

    {

         void Click();

         void Tap();

    }

    如果子类直接继承接口:

    CustomeViewA : CustomeViewInterface

    CusomteViewB : CustomeViewInterface

    CustomeViewC : CustomeViewInterface

    ......

    当CustomeViewInterface发生变化时,所有的CustomeViewA .... Z都要进行改动。工作量极大

    解决办法:

    使用一个抽象类实现接口

    abstruct CusomteView : CustomeViewInterface

    {

       public void Click(){};

       public void Tap(){};

    }

    其他子类继承与此抽象类

    CustomeViewA : CusomteView

    CusomteViewB : CusomteView

    CusomteViewC : CusomteView

    ......

    此时,如果接口CustomeViewInterface发生变化,只需要在抽象类CustomeView中进行修改即可,不会影响到其他子类

  • 相关阅读:
    PCI 设备详解二
    PCI 设备详解一
    SKBUFFER详解
    windows中的进程和线程
    sVIrt概述
    qemu网络虚拟化之数据流向分析二
    在VC6的debug框里面输出版权信息
    [yii]Trying to get property of non-object
    yii使用CFrom调用ajax失败的记录
    VC代码生成里面的/MT /MTd /MD /MDd的意思
  • 原文地址:https://www.cnblogs.com/hellenism/p/3730669.html
Copyright © 2011-2022 走看看