天天看点

面向对象和面向过程的区别[转]

一、系统的构造内容不同。

面向对象的方法是以对象为核心来构造软件框架的。

结构化方法是按功能分解的规律组织软件系统结构的。

二、 应对需求变更能力的不同。

面向对象的方法与生俱来很强的应对需求变更能力。能从容应对客户的需求变更。

对结构化方法来说,它的先天缺陷是需求变更很难,一旦要需求变更,意味着以前一切的工作都是徒劳的。

三、管理维护的难易程度不同

面向对象方法对管理信息系统的维护很简单。

结构化方法对管理信息系统的维护很困难。

四、思维模式不同

面向对象方法的思维模式是:关注“责任”,把责任转移。关注要解决的问题可以归纳或划分为哪些责任,归纳每个对象应该负有的责任,然后通过消息传递,让他们各自承担起自己的责任就行了。通过对象自身的行为改变其内部状态(所谓封装的概念)。

结构化方法的思维模式是:只关注要解决的问题的本身,不关注应由“谁”来完成。主要是通过外部力量改变数据状态。

五、强调的重点不同

面向对象方法强调对象交互。对象是一等公民,我们主要关注的是对象如何通过向彼此发送消息,支配行为,改变状态。

结构化方法强调过程序列。过程是一等公民,我们首先要知道做事情的一连串过程,一个过程就是一个改变实体状态的操作序列。

总之,结构化的方法是在传统的编程语言环境下诞生的,用这种方法构建的系统结构使得开发人员在面对用户需求频繁变更的开发环境时,吃尽了苦头。

相比之下,面向对象的语言和方法,使开发人员如释重负。首先,面向对象编程方法带来了高效、可靠、易维护、易扩充的效果。其次,运用面向对象的思维模式来认识和理解系统的构成,更接近于人们对客观世界的认知习惯。最重要的是,运用面向对象的方法构建的设计方案能够灵活自如地应对用户的需求变更,而这种变更对使用结构化方法构建的系统往往是一种致命的挑战。因此,面向对象的方法逐渐发展成为主流软件工程方法。

继续阅读