设计模式(十五):状态模式

优势:spa

  ① 将与特定状态相关的行为局部化,而且将不一样状态的行为分割开。code

缺点:对象

  ① 可能出现大量状态类。blog

适用范围:排序

  当一个对象的行为取决于他的状态,并且他必须在运行时刻根据状态改变他的行为,就要考虑此模式。事件

  一个操做中含有庞大的分支机构,而且这些分支决定于对象的状态。it

客户端: class

  Work work = new Work();//初始化给work状态赋值
  work.setHour(9); //给work时间赋值
  work.writeProgram(); //判断现状

  work.setHour(19); //给work时间赋值方法

  work.setFinsh(true); //打断的事件,工做完成便可下班,没必要再继续加班im

  work.writeProgram(); //判断现状

一句话归纳:

  根据不一样的工做时间,自动切换显示不一样的状态,如上午精神,下午疲惫等

    /**
     * State (状态是抽象类)
     * ForenoonState  NoonState  AfternoonState  EveningState  RestState  SleepState -- 基本按时间段顺序固定排序
     * (各自实例化State,根据时间范围及相关条件来判断是否处于当前状态,若不是,则转入下一个时间段的状态。)
     *
     * Work (设置开始状态、设置时间、进入序列判断显示现状等方法)
     *
     */
相关文章
相关标签/搜索