一、面向过程
1> 思想
- 面向过程是一种以过程为中心的最基础编程思想,不支持面向对象的特性。
- 面向过程是一种模块化程序设计方法
2> 开发方法
- 面向过程的开发方法是以过程(也可以说是模块)为研究核心 ,将不同的过程设计成不同的函数,然后按一定的流程调用即可。
3> 优缺点
-
优点
① 能够编写高效的代码 ② 在小型的流程清晰的程序设计方面有一定的优势
-
缺点
① 编写的代码可重用性低,开发效率较低 ② 难以或无法完成流程复杂的程序设计任务
二、面向对象
1> 思想
-
概念
① 对象:人们进行研究的一切事物,包括具体事物和抽象事物。具有一 定的状态和行为,封装了数据和操作。 ② 类:具有相同或相似属性对象的抽象。抽象了对象的状态和行为,形 成类的属性和操作。具有分类和组装两种不同的结构。 ③ 消息:对象之间进行通信的机制。
-
特征
① 唯一性:通过唯一的标示来标记不同的对象,标示在对象生命周期内 不能改变。 ② 分类性:具有一致数据结构和行为的对象抽象成的类 ③ 继承性:子类主动共享父类数据结构和方法的机制。包括单继承和多 继承(oc语言是单继承)。是面向对象开发中最重要的特征。 ④ 多态性:不同的对象调用相同的操作或函数会产生不同的结果
-
主要思想
① 万物皆对象的思想,更加符合人们认识世界的过程 ③ 主要考虑的是解决问题所涉及的对象,将对象的属性和相关操作封装 在一起,通过消息机制来实现对象之间的通信。
2> 开发方法
-
分析需求
-
建立对象模型
① 确定类 ② 准备数据字典 ③ 确定关联 ④ 确定属性 ⑤ 使用继承来细化对象 ⑥ 完善对象模型
-
建立动态模型
① 准备脚本,脚本又叫宏或批处理文件 ② 确定事件 ③ 准备事件跟踪表 ④ 构造状态图
-
功能建模
① 确定输入输出值 ② 建立数据流图
-
确定类的操作
3> 优缺点
-
优点
① 比面向过程思想的代码重用率高 ② 比面向过程思想的结构清晰 ③ 实现了封装,降低了外部操作内部数据的风险 ④ 包含了面向过程思想
-
缺点
① 由于实现了封装,操作内部数据将增加工作量 ② 由于进行对象及与对象相关的抽象, 会消耗相应的时间和空间代价, 性能较低