第八章 面向对象技术
8.1 面向对象基本概念
8.1.1 对象与类的相关概念
对象与封装
对象:属性(数据)+方法(操作)+对象ID
封装:隐藏对象的属性和实现细节,仅对外公开接口(信息隐藏技术)
对象与类
类(实体类,边界类(接口),控制类)
接口:一种特殊的类,它只有方法定义没有实现
8.1.2 继承与泛化相关概念
继承(extends)与泛化
复用机制(单重继承和多重继承)
泛化:找出类的共同点,泛化成父类;
重置/覆盖(overriding):在子类中重新定义父类中已经定义的方法;
重载:一个类可以有多个同名而参数类型不同的方法;
8.1.3 多态与动态绑定相关概念
多态
不同对象收到同一消息可以产生完全不同的结果;
过载多态
同一个名字在不同的上下文中所代表的含义不同;
动态绑定:运行时决定
静态绑定:编译时决定
消息和消息通信
对象之间进行通信的一种构造叫做消息。消息时异步通信的(消息传递:接收到消息的对象经过解释,然后予以相应)
8.2 面向对象分析
[!IMPORTANT]
面向对象分析→面向对象设计→面向对象程序设计→面向对象测试
面向对象分析
- 认定对象(名词)
- 组织对象(抽象成类)
- 对象间的互相作用
- 基于对象的操作
面向对象设计
- 识别类及对象
- 定义属性
- 定义服务
- 识别关系
- 识别包
面向对象程序设计(实现)
- 程序设计范型
- 选择一种OOPL
面向对象测试
- 算法层
- 类层
- 模板层
- 系统层
8.3 面向对象设计
面向对象7大原则
- 单一职责原则:设计目的单一的类
- 开放-封闭原则:对扩展开放,对修改封闭
- 李氏(Liskov)替换原则:子类可以替换父类
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的(解耦)
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解
面向对象设计其他原则
- 重用发布等价原则:重用的粒度就是发布的粒度
- 共同封闭原则:包中所有类对于同一性质的变化应该是共同重用的。一个变化若对一个包产生影响,则将对该包里的所有类产生影响,而对于其他包不造成影响
- 共同重用原则:一个包里的所有类应该是共同重用的。如果重用了包里的一个类,那么就要重用包中的所有类
- 无环依赖原则:在包依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图形
- 稳定依赖原则:朝着稳定的方向进行依赖
- 稳定抽象原则:包的抽象程度应该和其稳定程度一致