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中进行修改即可,不会影响到其他子类

  • 相关阅读:
    读图,特征提取——形状
    5.2 SW1控制LED1亮灭(中断功能)
    3、寄存器
    5.1、按键SW1控制LED1亮灭
    4.2、LED1、LED2交替闪烁
    2、编程工具IAR、烧写工具SmartRF的使用
    4.1、实现4个LED灯同时闪烁
    1、CC2530单片机介绍
    装windows系统教程
    连接夜神模拟器
  • 原文地址:https://www.cnblogs.com/hellenism/p/3730669.html
Copyright © 2011-2022 走看看