1.1 面向过程的编程风格与面向对象的编程风格
C语言是面向过程语言,也称为命令型语言,面向过程通常采用自顶向下设计,问题复杂时不断运用自顶向下设计(即函数分解法)直到容易处理。自顶向下设计优点是直观有条理,缺点是难于进行软件维护,包括软件系统的测试、调试和升级等,牵一发而动全身。
模块化的组织方式:将整个系统分解为若干模块,模块之间通过接口传递信息,模块划分应尽可能高内聚,低耦合。
内聚:模块内各元素彼此结合的紧密程度;耦合:不同模块间的依赖紧密程度。
问题:高耦合引起程序崩溃;低内聚使数据无法管理,程序难以理解;数据安全性问题;可维护性及可重用性差;图形界面难以实现和维护;串联改变。
程序设计=数据结构+算法
程序内容=过程+过程调用
面向对象=对象+类+继承+消息
面向对象程序设计是面向过程编程的一种替代技术,其中构成模块的基本单元是类而不是过程。面向对象设计中的类是对象(object)的集合体,对象是数据结构和算法的封装体,属于类的任何对象共享该类的所有属性。
程序=对象+消息
面向对象程序设计的优点:实现对现实世界客体的自然描述;可控制复杂性;可增强模块性;可提高重用性;可改善可维护性。
面向对象与面向过程的差异:采用对象为中心的解题方法更自然、更直接地反映真实世界的问题空间;以对象为中心的方法具有继承性;以对象为中心的解题方法采用消息传递机制作为对象之间相互通信的唯一方式,