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()函数;

    

        

 

posted @ 2018-01-17 21:07  小油菜1  阅读(110)  评论(0编辑  收藏  举报