面向对象是软件开发中主流方法之一,它是把数据及对数据的操作方法放到一起,作为一个相互依存的整体,即对象。
对同类对象抽象出其共性,即类,类中的大多数数据,只能被本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
面向过程是一种以事件为中心的开发方法,就是自顶向下顺序执行,逐步求精,其程序结构是按照功能划分为若干个基本模块,这些模块形成一个树状结构,个模块之间的关系也比较简单,在功能上相对独立,每一个模块内部一般都是由顺序、选择和循环3种基本结构组成,模块化实现的具体方法是使用子程序,而程序流程在写程序时就已经决定。
以五子棋为例面向过程的设计思路就是分析问题的步骤:第一步,开始游戏;第二步,黑子先走;第三步,绘制画面;第四步,判断输赢;第五步,白子再走;第六步,绘制画面;第七步,判断输赢;第八步,返回第二步;第九步,输出最后结果。
把上面每个步骤用分别的函数来实现就是一个面向过程的开发方法。
具体而言,面向对象与面向过程有以下几个方面的不同:
1、出发点不同。面向对象方法是符合常规思维的方式来处理客观世界的问题,强调把问题域的要领直接映射到对象及对象之间的接口上。而面向过程方法强调的是过程的抽象化与模块化,它是以过程为中心构造或者处理客观世界问题的。
2、层次逻辑关系不同。面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合-类-作