程序=数据结构+算法
数据结构可以看成 data ,算法就是所谓的code;程序就是代码和数据串接起来的一个逻辑体:
data独立,code独立;数据通过独立的变量或者函数参数在传递或者流动;
虽然有局部变量和全局变量,但是变量和代码没有聚合绑定;
程序是平坦的去组织,需要数据就定义数据变量,需要方法就定义函数,二者之间没有绑定;
面向过程的编程重点考虑的是流程,其写程序的方式更符合人的天然逻辑思考:
我的输入有哪些,我想要的结果是哪些,我要怎么的处理过程
输入->[处理过程]->输出
通过再进一步分析整个处理过程,把[处理过程] 再拆分出许多个 输入->[处理过程]->输出 子过程。
程序的组织也就越来越困难;那为何不换一种思路:
数据结构可以看成 data ,算法就是所谓的code;程序就是代码和数据串接起来的一个逻辑体:
面向过程:
data和code没有特别的亲疏关系data独立,code独立;数据通过独立的变量或者函数参数在传递或者流动;
虽然有局部变量和全局变量,但是变量和代码没有聚合绑定;
程序是平坦的去组织,需要数据就定义数据变量,需要方法就定义函数,二者之间没有绑定;
面向过程的编程重点考虑的是流程,其写程序的方式更符合人的天然逻辑思考:
我的输入有哪些,我想要的结果是哪些,我要怎么的处理过程
输入->[处理过程]->输出
通过再进一步分析整个处理过程,把[处理过程] 再拆分出许多个 输入->[处理过程]->输出 子过程。
编程中关注点是code或者function,数据的组织是被动的,通过输入和输出参数来组织;
面向过程的编程中变量数据有四个需要思考的问题 :生存期,可见性,存放位置,初始值;
至于过程需要思考的问题是:输入,输出和算法。为什么会出现面向对象的设计思想:
随着程序规模的扩大,数据和逻辑的复杂性越来越大,面向过程往往是线性的分析问题域,随着程序的参与实体越来越多,这其中的线性关系越来越复杂,线性路径也来越多,程序的组织也就越来越困难;那为何不换一种思路: