面向过程处理机制VS面向对象处理机制
2016-07-11 16:26
204 查看
面向过程处理机制就是把要实现的功能分为一步一步,也就是一个个函数。先做**,再做**,然后是**,最后是**。每一步非常具体,完成了所有步也就实现了这个功能。也就是实现原理。
面向对象处理机制就是将要解决的问题分解成各个对象,不是为了实现每个步骤,而是描叙某个事物在整个解决问题的步骤中的行为。一个对象是个方法面面的系统,也就是实现效果。
看到一个特别清楚的例子区分它们:
首先使用面向过程:
1、开始游戏,
2、黑子先走,
3、绘制画面,
4、判断输赢,
5、轮到白子,
6、绘制画面,
7、判断输赢,
8、返回步骤2,
9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:
1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
对于面向过程而言,面向对象的好处还是很多的:1代码的复用性高,代码的更好调用2代码的维护性好,面向过程维护代码,修改一个步骤需要修改很多,但面向过程就只要改一个功能就行了3代码的扩展性更好,面向过程可以添加新的不改变以前的代码。4更适合团队合作,这也是很重要的。
这些优点也会有性能的牺牲,就是面向过程的执行速度更快。而且面向对象程序中过多的继承属性,也可能会导致存储问题。
一个在努力中的未来程序员,如果有更好的想法,欢迎评论。
面向对象处理机制就是将要解决的问题分解成各个对象,不是为了实现每个步骤,而是描叙某个事物在整个解决问题的步骤中的行为。一个对象是个方法面面的系统,也就是实现效果。
看到一个特别清楚的例子区分它们:
首先使用面向过程:
1、开始游戏,
2、黑子先走,
3、绘制画面,
4、判断输赢,
5、轮到白子,
6、绘制画面,
7、判断输赢,
8、返回步骤2,
9、输出最后结果。
把上面每个步骤用分别的函数来实现,问题就解决了。
面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:
1、黑白双方,这两方的行为是一模一样的,
2、棋盘系统,负责绘制画面,
3、规则系统,负责判定诸如犯规、输赢等。
第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
对于面向过程而言,面向对象的好处还是很多的:1代码的复用性高,代码的更好调用2代码的维护性好,面向过程维护代码,修改一个步骤需要修改很多,但面向过程就只要改一个功能就行了3代码的扩展性更好,面向过程可以添加新的不改变以前的代码。4更适合团队合作,这也是很重要的。
这些优点也会有性能的牺牲,就是面向过程的执行速度更快。而且面向对象程序中过多的继承属性,也可能会导致存储问题。
一个在努力中的未来程序员,如果有更好的想法,欢迎评论。
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- Lua编程示例(二):面向对象、metatable对表进行扩展
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- C#中面向对象编程机制之多态学习笔记
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua面向对象之类和继承浅析
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数