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

优点:

  ① 将与特定状态相关的行为局部化,并且将不同状态的行为分割开。

缺点:

  ① 可能出现大量状态类。

适用范围:

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

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

客户端: 

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

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

  work.setFinsh(true); //打断的事件,工作完成即可下班,不必再继续加班

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

一句话概括:

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

    /**
     * State (状态是抽象类)
     * ForenoonState  NoonState  AfternoonState  EveningState  RestState  SleepState -- 基本按时间段顺序固定排序
     * (各自实例化State,根据时间范围及相关条件来判断是否处于当前状态,若不是,则转入下一个时间段的状态。)
     *
     * Work (设置开始状态、设置时间、进入序列判断显示现状等方法)
     *
     */
posted on 2019-01-10 10:43  书生游  阅读(138)  评论(0编辑  收藏  举报