【软考】上午题5-面向对象-中级软件设计师备考笔记
类
- 实体类:核心类,储存信息
接口类(边界类):媒介
控制类:控制活动流,协调者 - 一组对象的抽象定义
对象
- 通常由对象名,属性(状态)、方法(行为)组成
- 从属一个类的对象,共享属性与行为
消息
- 对象之间通信的构造(用 set 之类设置对象中的属性也算吧)
封装
- 是一种信息隐藏技术
- 对象是封装数据与行为的整体
继承
- 父类和子类之间共享非私有化数据和方法的机制
- 多重继承可能使成员产生二义性,即父母同时有的属性和方法不知调用哪个
多态
- 父类指针指子类对象,编译时视作父类,运行时视为子类(继承支持)
- 调用时发通用消息,调用不同方法
- 参数多态:最纯的多态
包含多态:很多语言存在,最常见的是子类型化(一个类型是另一个类型的子类型)
过载多态:同一个名字在不同的上下文中代表的含义不同
强制多态 静态绑定和动态绑定
- 前者编译时进行的,后者运行时运行的
面向对象设计的原则
- 五大原则:
单一职责原则:一个类一个责任
开放封闭原则:软件实体对拓展开放,对修改封闭
里氏替换原则:基类能出现,子类也应该能出现
依赖倒置原则:细节应依赖抽象(高层模块和底层模块都依赖细节)
接口分离原则:不应给客户不需要的接口 - 补充:
共同重用原则:重用包中一个类,应重用包中所有类
共同封闭原则:一个变化对一个包有影响,那么包中所有类都应受影响,其他包不受影响
稳定抽象原则:包的抽象程度与稳定程度一致
稳定依赖原则:所依赖的包比自己更稳定 面向对象分析 OOA
- 认定对象、组织对象、描述对象间相互作用、确定对象操作、定义对象内部信息
- 第一步:确认问题域
面向对象设计 OOD
- 识别类及对象、定义属性、定义服务、识别关系、识别包
面向对象测试
- 四个层次:算法层、类层、模板层、系统层
- 算法层:测试类中定义的每个方法,基本相当于传统软件测试的单元测试。
类层:测试封装在同一个类中的所有方法与属性之间的相互作用。可以认为是面向对象测试中特有的模块测试。
模板层:测试一组协调工作的类之间的相互作用。大体上相当于传统软件测试中的集成测试。
系统层:把各个子系统组装成完整的面向对象软件系统-
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!