文章目录
- 一、面向过程编程的结构化程序设计方法
- 1、结构化程序设计方法概念
- 2、结构化程序设计方法特点
- 3、结构化程序设计方法优缺点
- 二、面向对象编程引入
一、面向过程编程的结构化程序设计方法
如果使用 面向过程语言 ( 如 : C 语言 ) , 开发 大型 项目 , 一般使用 结构化程序设计方法 ;
1、结构化程序设计方法概念
结构化程序设计方法 的 设计思路如下 :
- 自顶向下 , 分而治之 ;
- 分解功能 , 每个功能都抽象出一个功能模块 ;
如下图所示 , 结构化程序设计方法 , 就是 将一个大问题 , 分解成很多小问题 , 每个小问题都使用独立的 子模块 解决 , 多个 子模块 共同构成一个 大的软件系统 ;
2、结构化程序设计方法特点
使用上述思路 设计出的 程序结构 有如下特点 :
- 是一个 树状结构 , 每个叶子节点都是一个基本功能模块 ;
- 模块之间 功能独立 , 每个模块都相当于一个子程序 , 调用模块就是调用该子程序即可 ;
- 模块内部只有 顺序 , 选择 , 循环 代码逻辑 ;
3、结构化程序设计方法优缺点
结构化程序设计 的 优点 就是可以 将 复杂庞大的系统 , 拆分成若干子任务 , 方便开发 , 控制 , 维护 ;
结构化程序设计 也有 很多缺点 :
- 可重用性差 : 每个模块子程序 的 代码 基本不可重用 ;
- 数据安全性差 : 没有 数据安全 , 开发者可以随意访问任意功能的任意变量 ;
- 不适合开发图形界面 : 图形界面的事物 使用 过程语言 进行 描述 并 实现 很难 , 即使开发出来也不容易维护 ; 因此很多 C 语言的程序都是命令行程序 , 如 : ffmpeg 等 ;
- 数据和处理过程分离 : 模块中 数据 ( 变量 ) 和 处理过程 ( 方法 ) 定义在不同的地方 , 给代码维护带来很多麻烦 ;
- 可维护性差 : 一旦 数据结构发生改变 , 需要 修改大量的代码 ;
二、面向对象编程引入
鉴于 面向过程编程 有上述缺点 , 这里引入 面向对象编程 思想 ;
针对 " 数据和处理过程分离 " 问题 , 面向对象 可以 将 事物的 数据 以及 对数据的处理过程 , 都定义在一个类中 , 将它们封装在一起 ;
针对 " 可重用性差 " 问题 , 面向对象 中 , 对 相同类型的 事物 , 抽象出其共有特点 , 形成一个类 , 该类可以重复使用 , 并可以创建多个该类型事物 ;
针对 " 不适合开发图形界面 " 问题 , 面向过程 中 抽象实现 界面元素很麻烦 , 但是如果使用面向对象 , 可以直接将界面抽象成一个类 , 界面中的按钮等元素也可以抽象成一个类 , 将这些类对象组合在一起 , 就是一个图形界面程序 ;
针对 " 数据安全性差 " 问题 , 面向对象中 , 封装数据和方法时 , 会为每个成员指定可访问的范围 , 如 public , protected , private 等访问范围 , 外部无法访问 private 成员 ;
引入面向对象后 , 极大地提高了 程序的 可维护性 ;