现想法的利器。我觉得好多人用
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)。面
向过程的编程中最常用的一个分析方法是
“功能分解”。我们会把用户需求先分解
成模块,然后把模块分解成大的功能,再把大的功能分解成小的功能,整个需
求就是按照这样的方式,最终分解成一个一个的函数。这种解决问题的方式称为
“自顶向下”,原则是“先整体后局部”,“先大后小”,也有人喜欢使用“自下向上”
的分析方式,先解决局部难点,逐步扩大开来,最后组合出来整个程序。其实,
这两种方式殊路同归,最终都能解决问题,但一般情况下采用
“自顶向下”的方
式还是较为常见,因为这种方式最容易看清问题的本质。