科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件java设计模式之State(对应每种状态的行为)

java设计模式之State(对应每种状态的行为)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 State的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.

作者:中国IT实验室 来源:中国IT实验室 2007年8月26日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
第二步: 要重新改写State manager 也就是本例的Context:
  
  public class Context{
  
    private Sate state=null; //我们将原来的 Color state 改成了新建的State state;
  
    //setState是用来改变state的状态 使用setState实现状态的切换
    pulic void setState(State state){
  
      this.state=state;
  
    }
  
    public void push(){
  
      //状态的切换的细节部分,在本例中是颜色的变化,已经封装在子类的handlepush中实现,这里无需关心
      state.handlepush(this);
      
      //因为sample要使用state中的一个切换结果,使用getColor()
      Sample sample=new Sample(state.getColor());
      sample.operate();
  
    }
  
    public void pull(){
  
      state.handlepull(this);
      
      Sample2 sample2=new Sample2(state.getColor());
      sample2.operate();
  
    }
  
  }
  
  至此,我们也就实现了State的refactorying过程.
  
  以上只是相当简单的一个实例,在实际应用中,handlepush或handelpull的处理是复杂的.
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章