假如接到一个项目,有一些功能模块的需求。你会通过面向过程的编程思想实现还是面向对象思想实现呢?
面向过程编程的主要思想是——自底向上,逐步模块化
用面向过程编程,可以编得比较“散”,比较自由。比如:为了实现某个功能,脑子里会有很多想法,想到一条就编一条,编完几条后,测试一下可行不可行,然后接着写,比较像写“散文”。
熙熙攘攘写了很多“散”代码后,发现那几个句子可以组合成为一个功能性函数,那么就可以新建function, 然后把那几行代码拷贝进去,把函数的输入和输出搞清楚就可以了。
等大部分功能都通过一些函数实现得差不多时,可以把这“零散”的函数分分类,同类别的划为一个模块。然后检查一下实现的流水线,有没有冲突的地方,有没有重复的地方等等。
最后,把所有模块添加都相应的APP控制按钮中去,就基本实现一个APP了。
面向对象的编程的主要思想是——顶层设计,逐步求精
用面向对象的编程思想程序就像写“议论文”,一步一步逻辑非常清晰。首先,我会搞清楚到底要实现哪几个主要功能,一个功能对应一个.h文件,在.h中只需要框出需要实现哪些功能,需要哪些数据,把他们的名列出来就行了,就相当于只建造了房子的骨架。其次,对应每个.h文件编写与其同名的.cpp文件,定义变量,定义具体实现方法。最后,编写一个含main()方法的.cpp文件,用于执行整个项目。
对比于面向过程式的程序,面向对象式的程序更容易修改,应该结构更清晰,骨头是骨头,肉是肉,不想面向过程式编程,像是将一些些程序片段慢慢强凑成函数,这样的编程容易出现逻辑混乱,骨和肉不清晰,不好修改。