• 实体类:核心类,储存信息
    接口类(边界类):媒介
    控制类:控制活动流,协调者
  • 一组对象的抽象定义
  • 对象

  • 通常由对象名,属性(状态)、方法(行为)组成
  • 从属一个类的对象,共享属性与行为
  • 消息

  • 对象之间通信的构造(用 set 之类设置对象中的属性也算吧)
  • 封装

  • 是一种信息隐藏技术
  • 对象是封装数据与行为的整体
  • 继承

  • 父类和子类之间共享非私有化数据和方法的机制
  • 多重继承可能使成员产生二义性,即父母同时有的属性和方法不知调用哪个
  • 多态

  • 父类指针指子类对象,编译时视作父类,运行时视为子类(继承支持)
  • 调用时发通用消息,调用不同方法
  • 参数多态:最纯的多态
    包含多态:很多语言存在,最常见的是子类型化(一个类型是另一个类型的子类型)
    过载多态:同一个名字在不同的上下文中代表的含义不同
    强制多态
  • 静态绑定和动态绑定

  • 前者编译时进行的,后者运行时运行的
  • 面向对象设计的原则

  • 五大原则:
    单一职责原则:一个类一个责任
    开放封闭原则:软件实体对拓展开放,对修改封闭
    里氏替换原则:基类能出现,子类也应该能出现
    依赖倒置原则:细节应依赖抽象(高层模块和底层模块都依赖细节)
    接口分离原则:不应给客户不需要的接口
  • 补充:
    共同重用原则:重用包中一个类,应重用包中所有类
    共同封闭原则:一个变化对一个包有影响,那么包中所有类都应受影响,其他包不受影响
    稳定抽象原则:包的抽象程度与稳定程度一致
    稳定依赖原则:所依赖的包比自己更稳定
  • 面向对象分析 OOA

  • 认定对象、组织对象、描述对象间相互作用、确定对象操作、定义对象内部信息
  • 第一步:确认问题域
  • 面向对象设计 OOD

  • 识别类及对象、定义属性、定义服务、识别关系、识别包
  • 面向对象测试

  • 四个层次:算法层、类层、模板层、系统层
  • 算法层:测试类中定义的每个方法,基本相当于传统软件测试的单元测试。
    类层:测试封装在同一个类中的所有方法与属性之间的相互作用。可以认为是面向对象测试中特有的模块测试。
    模板层:测试一组协调工作的类之间的相互作用。大体上相当于传统软件测试中的集成测试。
    系统层:把各个子系统组装成完整的面向对象软件系统-