面向过程
面向过程指的是,分析出解决问题所需的若干个步骤,用函数将这些步骤一一实现,使用时依次调用这些函数即可。
优点: 性能比面向对象高。常用于单片机、嵌入式开发、Linux/Unix,因为它们侧重于更高的性能、更小的资源消耗
缺点: 没有面向对象易维护、易复用、易扩展
引用网上看到的一个五子棋例子:面向过程的设计思路是分析解决问题的步骤:1)开始游戏,2)黑子先走,3)绘制画面,4)判断输赢,5)白子走,6)绘制画面,7)判断输赢,8)没有输赢,则返回步骤2,9)有输赢,则输出输赢的结果。把上面的步骤使用不同的函数实现,然后依次执行函数。
面向对象
面向对象指的是,从问题中抽象出若干个对象及其对应的方法,用这些对象执行方法来解决问题。它强调的是以功能来划分问题。
优点: 易维护、易复用、易扩展。由于面向对象具有封装、继承和多态的特性,可以设计出低耦合的系统,使系统更灵活和易于维护
缺点: 性能比面向过程低,因为类调用时需要实例化,开销比较大,更消耗资源。
对应的五子棋的例子:面向对象的设计思想是先抽象出若干个对象及其对应的方法。整个五子棋可以分为如下几个对象:
1)黑白双方,两方行为是没有差别的,这类对象的行为包括
①接受对应的用户输入
②告知第二类对象(棋盘)棋子布局的变化
2)棋盘,负责接受黑白方告知的棋子变化并绘制变化后的棋盘
3)游戏规则,负责判定犯规、输赢等