面向过程到面向对象

经过和吴老师的讨论,发现自己对面向对象的理解有很大偏差。

  • 从第三次作业的架构说起

    • 我的架构
      872718-20190402195414598-1383175517.png

      Input package里的关系

      872718-20190402195420854-137904032.png

    • 吴老师的

      872718-20190402221424742-978783087.png

    • 差别

      可以看出,虽然我也有意识的将各种项进行分类,但是从字符串到项的过程,我还是全部在polyTree中得到的,而我归纳的项并没有生成自己的功能,而只是被动地接受由polyTree生成的结果,像是一个翻版的c语言结构体。将一个字符串不断递归拆分,直到它为基础项,本质上仍然是一个面向过程的思路。换而言之,我无法把这个递归的过程表示出来,因为我不知道这棵树具体多高多大。

      而吴老师的方法才是运用了面向对象思维的。将每个项的生成交给其本身,自己完成自己的任务,而不是由一个主控程序来匹配,由其继续生成的项又成为了新的term,重新匹配。这是一个能够画出来的过程,term到达非基础项,非基础项又可以生成term。将所有不同类型的项归一为项这一父类,使所有问题有始有终,清晰明了。

  • 无限到有限的转变
    • 过程无限,对象有限
      经过上面的比较,我对面向对象有了更深刻的认识。面向过程是复杂而没有普适性的写法,当加入新的特性时,面向对象必须针对新的特性改动和重构原来的代码。过程的变化千变万化,但是对象的改动却很少,无非就是更改或增删某个对象的特点,或者增减某个对象。每个对象完成自己的任务,不依靠主控程序来控制逻辑,这样对于新特点的增加只需要改动相应对象的代码,而不需要考虑程序的整体逻辑。

    • 类图的真正作用
      在这次讨论中我还明白了类图的真正作用,类图是帮助整理对象与对象之间关系的。通过类图就可以判断程序逻辑的好坏,而且在设计规划时画类图也可以帮助整理思路,发现对象与对象的共通点,找到关键的归一方法。

posted on 2019-04-02 22:55  wjyi 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wjyi/p/10628002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值