面向对象
OOA:面向对象分析(Object-Oriented Analysis)
OOD:面向对象设计(Object-Oriented Design)
OOP:面向对象编程(Object-Oriented Programming)
1、面向对象和面向过程的区别?
面向对象和面向过程编程体现了编程者的两种不同的思维方式。
面向过程是一种以过程为中心的编程思想,它注重的是解决问题的步骤,强调实现功能的因果关系。是一种基础的顺序的思维方式。面向过程开发方式是对计算机底层结构的一层抽象,它将程序分为数据和操纵数据的操作两部分,其核心问题是数据结构和算法的开发和优化。常见的支持面向过程的编程语言有 C语言、COBOL 语言等。
面向对象是一种将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;采用人类认识世界的思维方式,将现实世界分割成不同的单元,每个单元都是一个对象,在进行驱动起来,让各个对象协作起来。
采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的编程思想,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
面向对象有三大特征:封装性、继承性、多态性
1) 出发点不同
面向对象使用符合常规思维的方式来处理客观世界的问题,强调把解决问题领域的“动作”直接映射到对象之间的接口上。而面向过程则强调的是过程的抽象化与模块化,是以过程为中心构造或处理客观世界问题。
2) 层次逻辑关系不同
面向对象使用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的单位,尽可能地使计算机世界向客观世界靠拢,以使处理问题的方式更清晰直接,面向对象使用类的层次结构来体现类之间的继承与发展。面向过程处理问题的基本单位是能清晰准确地表达过程的模块,用模块的层次结构概括模块或模块间的关系与功能,把客观世界的问题抽象成计算机可以处理的过程。
3) 数据处理方式与控制程序方式不同
面向对象将数据与对应的代码封装成一个整体,原则上其他对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序的。而面向过程是直接通过程序来处理数据,处理完毕后即可显示处理的结果,在控制方式上是按照设计调用或返回程序,不能自由导航,各模块之间存在着控制与被控制,调动与被调用的关系。
4) 分析设计与编码转换方式不同
面向对象贯穿于软件生命周期的分析、设计及编码中,是一种平滑的过程,从分析到设计再到编码是采用一致性的模型表示,实现的是一种无缝连接。而面向过程强调分析、设计及编码之间按规则进行转换贯穿于软件生命周期的分析、设计及编码中,实现的是一种有缝的连接。