C#培训2019-10-16第二课 方块移动 大方块 小方块 面向对象的深入理解

题目:按键控制中间大方块移动,大方块内有四个小方块,当按下对应按键时候,小方块的颜色会对应按下的按键颜色变化,深入理解其中面向对象的概念。

C#培训2019-10-16第二课 方块移动 大方块 小方块 面向对象的深入理解

心路历程:

1.首先看到这个题,感觉逻辑很简单,并没有体会到面向对象。
2.直接在UI中完成对大方块的new和对小方块的new。小方块的位置信息,由Form类来获取大方块的位置信息后传递给小方块;Form类记录按下哪个按键了,传递给大方块以及小方块;Form类对小方块和大方块进行绘制。
3.感觉没有什么类可以提取出来,因为方块的类不是逻辑类,并且还是系统内部定义好的类。

问题:和老师进行沟通后发现,没有抓住重点

1.首先补充知识点:在哪个类中new出来,代表的是归属于哪个类
2.小方块的位置信息,方向信息其实都可以直接由大方块来传递给他,而不是通过Form来取出来传递。因为小方块的位置就是随着大方块位置移动的。
3.结合1和2两点,我们就可以把架构改成:小方块是在大方块中new出来的,大方块把位置以及方向信息传递给小方块。
4.如何实现:接下来就有下一个疑问,因为方块是系统类,如何单独拿出来呢?解决方案:继承,自己写一个类,继承自方块类。

对第4点的说明:可以不用继承实现,继承可能会使代码更漂亮,但是,直接新建类是一样实现的!

优点

1.这样改完以后,层次就很清晰。若小方块有任何问题时,就可以找大方块。而不是找Form来解决,若什么出现问题了,都找Form解决,则会很麻烦。
2.拓展性?待领悟/老师讲解