最病 模块化 口传统的模块划分方法:要求组成的子程序(模 块)有实际意义和明确的某个功能 口功能分解和结构分解 口OO的模块划分目标:生成一组有助于降低系统 开发费用的模块,通过模块划分所得到的模块 应该能够保证可以独立的生成和修改,每个模 块的结构应该足够简单 Institute of Computer Software 2021/215 Nanjing University
2021/2/5 Institute of Computer Software Nanjing University 17 模块化 传统的模块划分方法:要求组成的子程序(模 块)有实际意义和明确的某个功能 功能分解和结构分解 OO的模块划分目标:生成一组有助于降低系统 开发费用的模块,通过模块划分所得到的模块 应该能够保证可以独立的生成和修改,每个模 块的结构应该足够简单
最病 模块化 口与抽象和封装密切相关 口模块的划分是以抽象出来的对象的性质和功能为依 据的 口模块是封装得以实现的技术保障 口 Booch:“模块化是反映一个被分解成一组相 关联的松散结合模块组成系统的一个特性。υ 口模块化以模块为基础 Institute of Computer Software 2021/215 Nanjing University
2021/2/5 Institute of Computer Software Nanjing University 18 模块化 与抽象和封装密切相关 模块的划分是以抽象出来的对象的性质和功能为依 据的 模块是封装得以实现的技术保障 Booch:“模块化是反映一个被分解成一组相 关联的松散结合模块组成系统的一个特性。” 模块化以模块为基础
模块与类型的统 口模块是软件分解的单元,是语法概念 口类型是某些动态对象的静态描述,是语义概念 口传统语言模块与类型分离 口对象语言模块与类型统 口类型:类是抽象数据类型的实现 口模块:类是对象式程序的基本组成单元 基于类的面向对象的语言机制的强有力之处 在于“类”统一了类型和模块 Institute of Computer Software 2021/215 Nanjing University
2021/2/5 Institute of Computer Software Nanjing University 19 模块与类型的统一 模块是软件分解的单元,是语法概念 类型是某些动态对象的静态描述,是语义概念 传统语言 模块与类型分离 对象语言 模块与类型统一 类型:类是抽象数据类型的实现 模块:类是对象式程序的基本组成单元 基于类的面向对象的语言机制的强有力之处 在于“类”统一了类型和模块
最病 过面向对象原则 Object orientation EoEo Institute of Computer Software, Nanjing University 2021/215
面向对象原则 Institute of Computer Software, Nanjing University 2021/2/5 20 Object Orientation Abstraction Encapsulation Inheritance Polymorphism
层次性 口封装性帮助隐藏细节;模块化使结构更加有序, 但仍然不够 口层次性是对抽象的排序和定位 口类结构关系(“isa") 口对象结构关系(“ part of") 实现方式 口继承:子类,父类 单继承,多继承 口聚合:拥有关系/组合关系 Institute of Computer Software 2021/215 Nanjing University
2021/2/5 Institute of Computer Software Nanjing University 21 层次性 封装性帮助隐藏细节;模块化使结构更加有序, 但仍然不够! 层次性是对抽象的排序和定位 类结构关系(“is a”) 对象结构关系(“part of”) 实现方式 继承:子类,父类 ◼ 单继承,多继承 聚合:拥有关系/组合关系