当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

筹划情势之State[Java编程]

赞助商链接



  本文“筹划情势之State[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

State的定义: 差别的状况,差别的行为;大概说,每个状况有着呼应的行为.

什么时刻利用?

State情势在实际利用中对比多,合适"状况的切换".因为我们常常会利用If elseif else 举行状况切换,假如针对状况的这样判断切换反复呈现,我们就要联想到能否可以采纳State情势了.

不只是按照状况,也有按照属性.假如某个对象的属性差别,对象的行为就不一样,这点在数据库系统中呈现频率对比高,我们常常会在一个数据表的尾部,加上property属性含义的字段,用以标识记录中一些特别性质的记录,这种属性的改变(切换)又是随时大概发生的,就有大概要利用State.

能否利用?

在实际利用,近似开关一样的状况切换是很多的,但有时并非那么明显,取决于你的经验和对系统的理解深度.

这里要阐述的是"开关切换状况" 和" 普通的状况判断"是有一些辨别的, " 普通的状况判断"也是有 if..elseif构造,比方:

if (which==1) state="hello";

else if (which==2) state="hi";

else if (which==3) state="bye";

这是一个 " 普通的状况判断",state值的差别是按照which变量来决意的,which和state没有关系.假如改成:

if (state.euqals("bye")) state="hello";

else if (state.euqals("hello")) state="hi";

else if (state.euqals("hi")) state="bye";

这就是 "开关切换状况",是将state的状况从"hello"切换到"hi",再切换到""bye";在切换到"hello",好象一个旋转开关,这种状况改变便可以利用State情势了.

假如纯真有上面一种将"hello"-->"hi"-->"bye"-->"hello"这一个方向切换,也不一定需求利用State情势,因为State情势会成立很多子类,复杂化,但是假如又发生别的一个行为:将上面的切换方向反过来切换,大概需求肆意切换,就需求State了.

请看下例:

public class Context{
  private Color state=null;
  public void push(){
  //假如当前red状况 就切换到blue
    if (state==Color.red) state=Color.blue;
    //假如当前blue状况 就切换到green
    else if (state==Color.blue) state=Color.green;
    //假如当前black状况 就切换到red
    else if (state==Color.black) state=Color.red;
    //假如当前green状况 就切换到black
    else if (state==Color.green) state=Color.black;

    Sample sample=new Sample(state);
    sample.operate();
  }
  public void pull(){
    //与push状况切换恰好相反
  if (state==Color.green) state=Color.blue;
    else if (state==Color.black) state=Color.green;
    else if (state==Color.blue) state=Color.red;
    else if (state==Color.red) state=Color.black;
    Sample2 sample2=new Sample2(state);
    sample2.operate();
  }
  }


  以上是“筹划情势之State[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 深化浅出基于Java的制作筹划情势
  • Java筹划情势之Observer情势
  • <b>深化浅出Java筹划情势之迭代器情势</b>
  • Java筹划情势之Visitor情势
  • Java筹划情势之Interpreter(注释器)情势
  • <b>Java筹划情势之Strategy(战略)情势</b>
  • Java筹划情势之工厂办法情势
  • Java筹划情势之中介者情势
  • Java筹划情势之计数代理情势
  • Java筹划情势之虚拟代理情势
  • 在Java中操纵Factory Method筹划情势
  • <b>筹划情势之Facade(外观)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .