甲乙小朋友的房子

甲乙小朋友很笨,但甲乙小朋友不会放弃

0%

OOD-电梯系统

如何设计一个电梯系统?

Clarify

Core Object

Core Object,就是定义几个核心的类。承上启下,成为Use case的依据

步骤:

  1. 根据Input和Output线性分析 思考:电梯系统的输入和输出分别是什么呢?
  2. 思考各个模块都有什么内容? 需要注意的+Public,-Private,Protected(能被子类访问)这些属性

Use Case

就是一个个功能。 根据一个个CoreObject,列举每个CoreObject对应有哪些Use case

  • ElevatorSystem
    • 处理请求,分发
  • Request
  • Elevator
    • 处理外部的请求(外面的人想进去,按按钮)
    • 处理内部请求
    • 开门
    • 关门
    • 检查重量
  • ElevatorButton
    • 按下去

Class

类图(Class diagram)

  • 遍历每一个use case

  • 对每个use case更加详细描述在做什么

    • Handle request:就是要把请求分发给某个电梯。那就给ElevatorSystem加一个方法:

      一个小问题,万一没分配成功,例如现在电梯都坏了,怎么办?——使用Exceptions。加一个类:

    • Take external Request:除了电梯系统要handle,某个电梯也需要handle请求。那就给电梯加一个handleExternalRequest

      除此以外,我们还有待停list:

    • Take internal Request:需要让电梯能处理internal的请求。 除此之外,我们还需要判断现在internal的请求是不是合法的。那就再加一个isQuestValid()和两个状态变量:

    • Open gate

      给电梯加一个openGate()方法

    • Close gate

    Check weight

    press button

最终: