background image

现想法的利器。我觉得好多人用

C#,Java 写出来的代码,要是仔细看看,那实际

就是用面向对象

(OO)的语言写的面向过程(OP)的程序。

  所以,即使给关羽一根木棍,给你一杆青龙偃月刀,他照样可以打得你满

头是包。你就是扛着个偃月刀,也成不了关羽,因为你缺乏关羽最本质的东西

---

绝世武功。同样的道理,如果你没有领会

OO 思想,怎么可能写得出真正的 OO

程序呢?面向对象

(OO)和面向过程(OP)绝对是两种截然不同的思维方式。

  那是不是面向过程就不好,也没有存在的必要了?我从来没有这样说过。事

实上,面向过程的编程

(OPP)已经存在了几十年了,现在依然有很多人在使用。

它的优点就是逻辑不复杂的情况下很容易理解,而且运行效率远高于面向对象

OO)编写的程序。所以,系统级的应用或准实时系统中,依然采用面向过程

的编程

(OPP)。当然,很多编程高手以及大师级的人物,他们由于对于系统整体

的 掌 控 能 力 很 强 , 也 喜 欢 使 用 面 向 过 程 的 编 程

(OPP) , 比 如 像

Apache,QMail,PostFix,ICE 等等这些比较经典的系统都是 OPP 的产物。

  像

php 这些脚本语言,主要用于 web 开发,对于一些业务逻辑相对简单的

系统,也常使用面向过程的编程

(OPP),这也是 php 无法跨入到企业级应用开发

的原因之一,不过

php5 目前已经能够很好的支持 OO 了。

  

2.详解面向过程的编程(OPP)

  在面向对象出现之前,我们采用的开发方法都是面向过程的编程

(OPP)。面

向过程的编程中最常用的一个分析方法是

“功能分解”。我们会把用户需求先分解

成模块,然后把模块分解成大的功能,再把大的功能分解成小的功能,整个需

求就是按照这样的方式,最终分解成一个一个的函数。这种解决问题的方式称为

“自顶向下”,原则是“先整体后局部”,“先大后小”,也有人喜欢使用“自下向上”

的分析方式,先解决局部难点,逐步扩大开来,最后组合出来整个程序。其实,

这两种方式殊路同归,最终都能解决问题,但一般情况下采用

“自顶向下”的方

式还是较为常见,因为这种方式最容易看清问题的本质。