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.拓展性:若后面需要多个大方块,则无需管小方块的生成和颜色,只需要new大方块出来就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值