面向过程到面向对象

经过和吴老师的讨论,发现自己对面向对象的理解有很大偏差。从第三次作业的架构说起我的架构Input package里的关系吴老师的差别 可以看出,虽然我也有意识

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

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

    • 我的架构

      Input package里的关系

    • 吴老师的

    • 差别

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

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

  • 无限到有限的转变

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

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

您可能有感兴趣的文章
谈谈对面向对象的理解

设计模式:面向对象设计的六大原则 (绝对详细)

面向对象4大特性

面向对象的三大特性

C++中面向对象的理解