跳到主要内容

状态机

状态机通过改变对象内部的状态来帮助对象控制自己的行为, 消灭了很多 if/else 语句, 代码块变小,每个部分的认知复杂度降低

  • 思考明确
    • 谁是这个对象(Context)
    • 对象都有哪些状态(抽象,有限个数)
    • 对象都有哪些行为(抽象,有限个数)
    • 对象在状态下的行为实现(具体实现)
    • 每个对象都将持有对象的ref,以便在行为实现中改变对象的属性