面向对象程序设计与过程化程序设计有什么本质区别?

如题所述

本质区别,面向过程基本上是一种状态机,不利于修改,当新状态出现的时候,甚至可能需要重设每一个状态解决实现,换句话说,新需求的出现需要改变多少现有代码,完全取决于事先对状态机的预留功能的考虑有多周全。
面向对象则很好的回避了状态机的问题,实现了对新需求的良好支持,因为封装特性,一个类新添加什么方法,跟原有的方法并不会有什么冲突,更加不会影响到调用本类和本类调用的代码块,多态则是很好的应对了变化的需求,继承则是可以更好的利用原有的代码。
用的好的面向对象编程可以完全模拟面向过程的模式,利用静态方法和静态类就可以了,而面向对象本身的三个基本特性就是解决了面向过程在大规模开发中的不足而存在的,即封装、多态、继承,简单的说封装是为了尽可能对类外部隐藏数据,以免有被外部污染的可能;多态是为了以不同的方式、不同的类来实现一个公共接口(行为)的能力,这完全模拟显示世界比如同样是猫科动物的狮子和猫,都能叫,能叫就是同样继承自猫科的行为能力,叫声就是具体的行为实现 ,两个类对同一个方法的不同实现就是多态的一种主要形式。继承则是为了能够重复利用现有的方法实现,类中已经定义好的存储结构。
面向对象用的好可以比面向过程更好的组织实际的方法实现和存储结构。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-08
面向过程化程序设计是只考虑实现客户的需求不考虑以后的扩展方面的 如果以后客户的需求有变化 那代码量要改变非常大 耗费的时间都是相当的
而面向对象程序设计是根据客户的需求用继承/封装/多态/抽象 等去设计程序 代码量比面向过程化程序设计是多出了很多 但以后的扩展性和维护性是相当的高效 现在的企业都是采用面向对象程序设计
相似回答