面向过程VS面向对象之我见

来源:互联网 发布:centos 7搭建html 编辑:程序博客网 时间:2024/06/06 19:45
我曾经思考过这个问题,究竟人类的思维方式是面向对象的还是面向过程的?面向过程的思想就像是:我们接到一个问题后先将其划分为几个解决步骤,其中有共性的抽象出来作为函数可以重复使用,然后按步骤执行。面向对象的思想就像是:我们接到一个问题先分析其场景和场景中的要素,将其抽象为类,然后思考为解决这个问题场景中的各个要素分别应该承担那些任务或者说具备哪些功能,然后程序员所需要做的就是将这些要素组织起来、协调好工作关系,最后启动这一工作即可。总的来说,在面向过程的思想中,编程者像是一个独裁者,一个执行者,他对一起都说的算,周围的一起都像是它的工具——自动化很低的工具,他一一拿起来完成自己心中的计划;而面向对象的思想中,编程者更像一个组织者,一部电影的导演,他组织剧组里的成员,交代分工和工作时的互相配合,然后在启动拍摄后退居到幕后,具体工作由手下按照他早已做好的安排来完成。那么究竟人类的思维方式是怎样的呢?面向过程还是面向对象?人们解决问题是更愿意扮演操控者还是组织者?这就是因人而异的问题了,说的玄乎点就是思想境界的问题了。人天生的思维方式肯定是面向过程的,就像“把大象放冰箱分三步”一样是分step one two three的,但是随着面对的问题越来越复杂凭借一己之力越来越难以掌控,人就得学着放权,学着合作,学着组织,这就很自然地过渡到了面向对象的思想。所以说,我认为人的原始思维方式是面向过程的,面向对象思想是人对问题复杂性的一种妥协。