面向对象与面向过程

看了很多书,其中大部分书在讨论面向对象和面向过程编程时都喜欢把这两种编程思想对立起来,我个人觉得不妥,实际上它们之间并不对立,那么它们之间的关系是什么呢?我认为面向对象是对面向过程的一种发展与补充,同时也是对同一个事务两种不同的看法,面向过程将研究对象的功能和数据分开,以功能为主来进行分析和处理,而面向对象则是将这两个方面统一起来一起考虑,面向对象侧重的是宏观和全局,而面向过程则注重的是微观和局部,面向对象侧重的是一个架构,而面向过程则侧重的是实现。在我们实际编程过程中,实际上这两种思想都很重要,都会用到,在早期的编程语言中,因为技术上(速度,硬件等)的和应用范围(大多是做一些数学方面的计算)的限制,没法提面向对象编程的支持,但面向对象编程的思想其实比过程编程的出现并不晚很多。至于什么语言是真正的面向对象编程语言,我认为并不是很重要,爱干净当然是一件好事情,但成了洁癖就未必都好了,C++支持面向对象编程,OBject Pascal也支持,Java当然也支持,但所谓的纯面向对象编程语言,本身就是一个伪命题,今天做不到,以后也做不到,原因就在于我们看问题一般都有两种方式,而且两种方式都重要,那就是宏观与微观,整体与局部。我们可以把研究的命题分化成一个个对象来研究(面向对象,设计一个个的类),但对象内部的实现还是要用面向过程来办。
后记:哲学与方法论其实其实非常重要,虽然是大道理,但这些大道理不是说教的大道理,而是人们在探索这个世界中的一种精髓总结。

你可能感兴趣的:(c/c++,java)