何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起。而这种茫然,其实就是对这两大编程思想的迷糊之处。
本文来详细阐述一下面向对象和面向过程的区别和联系。
面向过程思想顾名思义其实就是面向解决问题的步骤进行编程。
面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!
将要实现的功能描述为一个从开始到结束按部就班的连续的步骤(过程);依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步骤再次细化为若干个子步骤;程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程。面向过程,就是按照我们分析好了的步骤,按部就班的依次执行就行了!
所以当我们用面向过程的思想去编程或解决问题时,首先一定要把详细的实现过程弄清楚。一旦过程设计清楚,代码的实现简直轻而易举。
面向对象思想就是分析参与问题的有哪些实体,这些实体应该有的属性和方法,通过调用这些实体的属性和方法解决问题。
当采用面向对象的思想解决问题时,可分为下面几步:
分析哪些动作是由哪些实体发出的;定义这些实体,为其增加相应的属性和功能;让实体去执行相应的功能或动作。面向过程主要是针对功能,而面向对象主要是针对能够实现该功能的背后的实体。
面向对象实质上就是面向实体,所以当我们使用面向对象进行编程时,一定要建立这样一个观念:万物皆对象!
面向对象和面向过程都可以实现代码重用和模块化编程,但是面向对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!
面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑。
从前期开发角度上来看,面向对象远比面向过程要复杂,但是从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!