面向过程处理机制就是把要实现的功能分为一步一步,也就是一个个函数。先做**,再做**,然后是**,最后是**。每一步非常具体,完成了所有步也就实现了这个功能。也就是实现原理。
面向对象处理机制就是将要解决的问题分解成各个对象,不是为了实现每个步骤,而是描叙某个事物在整个解决问题的步骤中的行为。一个对象是个方法面面的系统,也就是实现效果。
看到一个特别清楚的例子区分它们:
首先使用面向过程:
1、开始游戏,
2、黑子先走,
3、绘制画面,
4、判断输赢,
5、轮到白子,
6、绘制画面,
7、判断输赢,
8、返回步骤2,
9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:
1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
对于面向过程而言,面向对象的好处还是很多的:1代码的复用性高,代码的更好调用2代码的维护性好,面向过程维护代码,修改一个步骤需要修改很多,但面向过程就只要改一个功能就行了3代码的扩展性更好,面向过程可以添加新的不改变以前的代码。4更适合团队合作,这也是很重要的。
这些优点也会有性能的牺牲,就是面向过程的执行速度更快。而且面向对象程序中过多的继承属性,也可能会导致存储问题。
一个在努力中的未来程序员,如果有更好的想法,欢迎评论。