zoukankan      html  css  js  c++  java
  • 设计模式(十五):状态模式

    优点:

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

    缺点:

      ① 可能出现大量状态类。

    适用范围:

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

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

    客户端: 

      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 (设置开始状态、设置时间、进入序列判断显示现状等方法)
         *
         */
  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/shushengyou/p/10248553.html
Copyright © 2011-2022 走看看