面向对象与面向过程的区别
1. 与面向对象编程思想相比较的,往往是面向过程的编程思想,其实在我来理解,两者并不冲突,原因是面向对象的编程也必须使用面向过程的思维来实现具体的功能,所以我认为,两者的区别是两种思想境界不同,面向过程的思想就像是一个员工在思考问题,他只在意把自己的工作按步骤完成即可,而面向对象的思想就像一个公司的BOSS,他要考虑公司的整体布局,各个部门的职责、以及协调工作,公司的发展方向等,而具体的工作,比如前台接待客户的流程,他不需求亲自考虑,但公司每天的每个具体工作细节又是组成了整个公司的运作,两者又是联系的。
2.下面我们用一个具体案例再分析一下:
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:
(1)、开始游戏,
(2)、黑子先走,
(3)、绘制画面,
(4)、判断输赢,
(5)、轮到白子,
(6)、绘制画面,
(7)、判断输赢,
(8)、返回步骤2,
(9)、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
而面向对象的设计则是从另外的思路来解决问题。
整个五子棋可以分为:
(1)、黑白双方,这两方的行为是一模一样的,
(2)、棋盘系统,负责绘制画面,
(3)、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
对于一个新手来说,想要把面向对象思想在开发中运用自如,不是一件容易的事,一直在说面向对象是一种思想,那他必然需要经过长时间的熏陶与实践,严重点就是洗脑的过程,伴随着开发经验的积累和工作上的锤炼,往往对面向对象的理解程度会有不同,所以搞对象更像是一门艺术,需要你长期修练。