zoukankan      html  css  js  c++  java
  • 随笔(2012528读代码大全,未完待续)

    摘记:尽量使用多态,避免大量的类型检查

    频繁重复出现的case语句有时是在暗示,采用集成可能是种更好的设计选择--尽管并不总是这样。

    switch (shape.type)

    {

    case Shape_Circle:

    shape.DrawCircle();

    break;

    case Shape_Square:

    shape.DrawSquare();

    break;

    ……

    }

    在这个例子中,对

    shape.DrawCircle()和

    shape.DrawSquare()的调用应该叫shape.Draw()的方法来替代,因为无论形状是圆的还是方的都可以调用这个方法来绘制。

     

    另外,case语句有时也用来把种类确时不同的对象和行为分开。下面就是一个在面向对象编程中合理采用case语句的例子:

     

     

    switch(ui.Command()

     

     

    {

     

     

    case Command_OpenFile

    :

     

    OpenFile();

     

    break;

     

    case Command_Print:

     

    Print();

     

    break;

     

    case Command_Save:

     

    Save();

     

    break;

     

    ……

     

    }

     

     

    此时也可以创建一个基类并派生一些派生类,再用多态的DoCommand()方法来实现每一种命令。但在像这个例子一样简单的场合中,DoCommand()意义实在不大,因此采用case语句才是最容易理解的方法。

     

    未完待续(下次抽空整理下排版,上班时间抽空写的)

  • 相关阅读:
    学习进度——第五周
    构建之法阅读笔记02
    学习进度——第四周
    整型数组——首尾相连
    构建之法阅读笔记01
    二维数组
    学习进度——第三周
    新最大子数组——数量级和数量无限大
    最大子数组求和
    P3388 【模板】割点(割顶)题解 tarjan求割点
  • 原文地址:https://www.cnblogs.com/xinshijie/p/2524225.html
Copyright © 2011-2022 走看看