定义:
面向对象:采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。
面向过程:采用以事件为中心的概念建立模型,模拟客观世界分析、设计、实现软件的办法。
在本文中将以bug管理系统为例从软件需求、设计、编程、数据库设计对面向过程和面向对象进行比较:
面向对象与面向过程之需求分析
面向过程的需求分析方法先找出与系统相关的“对象”,然后分析每个“对象”所期望提供的功能:
面向过程的需求分析方法是直接对期望系统所提供的功能进行罗列:
面向对象与面向过程之程序设计
面向对象的程序设计是根据需求分析的结果来设计系统需要包含哪些“对象”,并描述这些“对象”之间的关系以及每个“对象”所要提供的功能。
面向过程的程序设计是根据需求分析的结果来设计系统需要提供哪些“功能”,并采用自顶而下的结构化设计方法来对需要实现的功能进行分解
面向对象与面向过程之代码编程
面向对象的程序编写一般采用C++、java等面向对象编程语言
class CProgrammer
{
public:
CProgrammer(){}
virtual ~CProgrammer(){}
public:
void queryBug(....)
{
//调用CUserMng进行全新判断
//调用CBugMng进行bug查询
}
void replyBug(....)
{
//调用CUserMng进行全新判断
//调用CBugMng进行bug修改
}
private:
}
面向过程的程序编写一般采用C等结构化变成语言
void queryUser(...)
{
//查询该用户的向下信息
}
void queryBug(...)
{
//查询bug信息
}
void editBug(...)
{
//修改bug信息
}
void QueryBug(人员,.....)
{
//调用queryUser(...)函数检查用户权限
//调用queryBug(...)函数查询bug信息
}
void replyBug(人员,.....)
{
//调用queryUser(...)函数检查用户权限
//调用editBug(...)函数修改bug信息
}
虽然面向过程的各种思想提出的时间比较早,理论比较旧,现在也没有面向对象的红火,但是面向过程也有其自身的优点,加深对其了解也会弥补面向对象理论的一些不足,有助于开发出更好的软件。