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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41617697/article/details/102598740

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

在这里插入图片描述

心路历程:

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

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

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

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

优点

1.这样改完以后,层次就很清晰。若小方块有任何问题时,就可以找大方块。而不是找Form来解决,若什么出现问题了,都找Form解决,则会很麻烦。
2.拓展性:若后面需要多个大方块,则无需管小方块的生成和颜色,只需要new大方块出来就可以了。

猜你喜欢

转载自blog.csdn.net/qq_41617697/article/details/102598740
今日推荐