04 OOP面向对象设计 VS SP结构化程序设计
(1) SP
- 核心思想
将问题的求解看作功能的处理,程序是功能的具体体现(比如设计一个算法,输入输出)。
即对输入数据实施相关运算,将得到预期的结果
- 优缺点
- 优势:
- 以功能为核心构建系统,目标明确,方法简便易行
- 自定向下逐步求精的有效的开发策略
- 劣势:
- 以功能为核心的构建方式 => 稳定性差(添加功能繁琐),数据分散不清晰,有限的可重用性
- 开发和用户语义鸿沟
(2) OOP
- 核心思想
- 以数据为核心来实现功能,数据比功能更稳定 => 更好的重用性。
- 数据和针对数据操作封装在一起,只要数据不改变,操作不改变,易于维护和封装。
- 抽象出这些对象并对其构成模拟客观世界的对象,继而编写代码实现此模型。
- 优缺点
- 优势:
- 本质是显示系统的模拟,想对容易理解
- 封装:打包、隐藏(数据保护)
- 继承
- 多态
- 抽象
- 劣势:
- 相对过于简单的程序,没有必要使用复杂的抽象,再进行编程,回退到SP,
- 相对过于复杂的程序,有些无法通过现实场景抽象,类的复杂程度可能相当高,关系过于复杂,也难以进行维护