zoukankan      html  css  js  c++  java
  • 11)代码重用思想(以游戏为例)

    1)情况说明:
          假如  我想在我的游戏上  显示以恶搞菜单  然后这个菜单  显示1和2  

              要是我用鼠标点击1  ,就可以玩  贪吃蛇游戏

              要是我用鼠标点击2,就可以玩   俄罗斯方块游戏

    2)针对上面的情况,简单的思路  就是  我定义一个变量  

              要是我用鼠标 点击 1  那个变量就赋值为1,然后在每一个case的WM里面运行if(FX==1)的代码

              要是我用鼠标 点击 2  那个变量就赋值为2,然后在每一个case的WM里面运行if(FX==2)的代码

          ~~~~~~~~~上面的思路,简单  可以实现  我想要的功能,但是 我要是很多游戏呢  ,就得加很多的 if判断,这样很麻烦

                        ~~~~~~~~~~于是  有了下面的思路

    3)这种情况类似于  C++的那个多态,就是说  你要你想自己设置选哪一套接口    来实现 后续通过你的选择  来执行不同的代码,但是一旦添加新的东西 

          我的代码没有改动  这个就是  一对多   就是多态的应用,虚函数的妙用,以后就是直接调用父类的接口,然后就可以实现子类的功能。

    4)代码样例实现:

          

    1 比如我有一个类 A
    2      {
    3           //他有函数
    4             AA()
    5             BB()
    6 
    7      }

    然后  我在我的switch中调用我的那个函数

     1 switch(&Msg)
     2     {
     3          case WM_CREATE:
     4                   AA();//完成初始化工作的函数
     5                  break 6          case WM_PAINT:
     7                  BB();//完成重绘工作
     8                 break 9 
    10     }                

    然后  我有一个贪吃蛇的类 继承这个A类,那么完成的事和刚刚的那个A干的事一样:
    那么  我的在回调函数WndProc函数中的switch代码没有变化,

    贪吃蛇类干的事  就是重写AA()和BB()函数;

        

            

  • 相关阅读:
    动态显隐jgGrid的列,改变列名
    从数据库获取bit类型判断的时候要注意大小写
    jqGrid自定义列的用法
    ERP中Ajax的使用
    给DataGrid或Repeater加载树状结构
    jqGrid显示树形结构
    使用json异步获取数据提交表单
    封装jQuery图表插件
    java 多线程 day10 获取线程的返回值 CallableAndFuture
    java 多线程 day09 线程池
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8306051.html
Copyright © 2011-2022 走看看