OO(object-oriented): 基于对象概念 , 以对象为中心 , 以类和继承为构造机制 , 来认识 , 理解 , 刻画客观世界和设计 , 构建相应的软件系统的一门方法 ; 模拟人类的思维方式 , 使开发 , 维护 , 修改更加容易。
OOA(object-oriented analysis): 强调的是在系统调查资料的基础上,针对 OO 方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析 ; 其实就是进一步对 OO 进行细化 , 初步得出该 OO 的属性与方法( 或者简单的理解 : 在得出的文档中对接口的粗略定义 ) 。
OOD(object-oriented design):OO 方法中一个中间过渡环节 , 其主要作用是对 OOA 分析的结果作进一步的规范化整理,以便能够被 OOP 直接接受,整理和定义 OO 的属性和方法。
OOP(object-oriented programming): 把组件的实现和接口分开,并且让组件具有多态性 ----( 抽象 , 继承 , 封装 ,多态 ) 面向接口编程。
这是一个故事 :
" 工程师修了一条隧道 , 隧道的一端就是美丽的风景 , 很多人会开车通过隧道 . 虽然隧道内已经有灯了 , 但是设计者担心隧道可能会停电 , 所以在隧道的入口立了牌子 , 提醒驾驶员进入隧道前开灯 . 可是由此却使得驾驶员由于看到美丽的风景而忘记关灯的情况的发生 ."
引来对 OOA, OOD, OOP 的理解 ;
分析师拿到了政府,民众,组织,社团等的需求,这里泛指所有来自客户的需求了;了解需求,分析需求,分析技术实现等,得出一个结论:要在这里修条隧道;于是分析师,系统分析师,架构设计师出现了,他们干的工作就分析出来一个方案,即项目需求吧,他们的身份就是 OOA 了。
OOA 是 Object-Oriented Analysis( 面向对象分析 )
分析师们分析结果出来后,形成了最早的需求模型;可能是一个草图,一张可行性分析 XX 报告;设计师们拿到这个模型进行细化,模块化,定义所有的细节,也就是 详图,或是详细的需求分析规格书了,在这里,可能会有隧道的位置,长度,宽度,高度,容量,光线,材料,设备,电子眼,安全等,这里就是具体的需求文档 了。设计师的设计工作完成了,他们就是 OOD 。
OOD 是 Object Oriented Design( 面向对象设计 )
OOP 就是施工队了,他们按照设计图的要求完成隧道工程,包括质量,容量,安全等测试,也就是完成项目的实际操作部分,在项目里就是 coding 的工作和 testing 的工作。到此为止,隧道就完成了,驾驶员也可以说成是 testing的一员,他们进行体验,体验完了,没问题, OOP 的工作也就结束了,我们可以收工了。
OOP 是 Object Oriented Programming ( 面向对象程序设计 )