zoukankan      html  css  js  c++  java
  • 面向过程到面向对象

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

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

      • 我的架构

        Input package里的关系

      • 吴老师的

      • 差别

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

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

    • 无限到有限的转变

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

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

  • 相关阅读:
    第46课.继承中的构造与析构
    第45课.不同的继承方式
    第44课.继承中的访问级别
    第43课.继承的概念和意义
    [文件系统]文件系统学习笔记(三)---目录项缓存dentry
    [文件系统]文件系统学习笔记(二)---task_struct
    [文件系统]文件系统学习笔记(一)---基本概念以及inode
    [Linux]进程(十二)--task_struct结构体
    [Linux]进程——用户态编程相关
    [linux]进程(十一)——进程权能
  • 原文地址:https://www.cnblogs.com/wjyi/p/10628002.html
Copyright © 2011-2022 走看看