版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
概念与思想
“面向过程”(Procedure Oriented)是一种以“过程”为中心的编程思想,所谓“面向过程”的编程就是以“什么事情发生”或“什么流程进行”为目标或单元进行编程,而面向对象的则是以“谁在受影响”或“谁作出什么反映”为指导进行编程。
面向对象中的“谁”就是某对象,对象作出的影响或反映会触动“一系列的过程“发生或“一系列的流程“进行,也就是说对象在物理层面表现为“过程”的集合。
一个系统中会有很多的过程要执行,如果采用面向过程的方法编程,则需要仔细分析过程的执行顺序,使用的时候一个一个地调用就可以了,相互间的逻辑关系和运行影响,随着系统复杂性的提高,过程会越来越多,无数的过程出现在系统中,就很难理清楚它们之间存在的关系,一个一个地调用会变得非常繁琐和谨慎,那么系统的质量属性就很难保证,这些质量属性包括:
性能、可用性、可修改性、安全性、可测试性、易用性。
“面向过程”是一种以过程为中心的编程思想,也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如封装、继承、多态等),这通常需要编写不同的过程,不易于复用和修改。
这里可以明显地感觉到:面向过程中的过程是分散的、过于细节的、无特征的,而对象则可以看作是“过程”的有机结合体,对象将逻辑上相关的过程以及他们会使用的数据整合到一起,对外体现为一个自管理的有机构件,对象通常具有特定的职责,这就更有利于高层设计工作的开展和实施,因为高层设计面向了具体职责的对象后则不用再关系底层复杂的过程执行,不会被“细节”所羁绊。
面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际地实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.模块就是过程的组合体,但依然缺乏对象的有机性,对象更贴近人文自然。对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为(这里的行为就对应面向过程中的过程或这模块).当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织,比如拿学生早上起来的事情来说说这种