JAVAÑ§Ï°ÍøÊ×Ò³ °ÑÉú»î²éÑ¯Íø¼ÓÈëÊÕ²Ø °ÑJAVAÑ§Ï°ÍøÉèΪÊ×Ò³ ÁªÏµ·½Ê½
    Hi,JAVAѧϰ
JAVA»ù´¡ Éè¼ÆÄ£Ê½ Êý¾Ý¿â JavaBeans J2EE JavaDelphi Óû§½çÃæ ×ÛºÏÎÄÕ  
״̬ģʽ֮ÐǼÊÓ¦ÓÃ
ʱ¼ä:22/04/2007
×÷ÕߣºÍøÂç
À´Ô´£ºÍøÂç
СÌáʾ¡úµãÕâÀï°ÑÎÄÕ¼ÓÈëÄúµÄÊղؼÐ,·½±ãÏ´β鿴
ÉèÖÃÎÄÕÂ×ÖÌå´óС£º[´ó ÖРС]

Ò»¸ö¶ÔÏóÓжàÖÖ״̬£¬ÔÚ²»Í¬µÄ״̬Ï£¬Í¬Ò»ÖÖ·½·¨Óв»Í¬µÄÐÐΪ¡£Èç¹ûÓÃswich-caseÓï¾ä£¬½«ÓдóÁ¿µÄÌõ¼þ·ÖÖ§ºÍÂß¼­´úÂë»ìÔÚÒ»Æð¡£×´Ì¬Ä£Ê½½«Ã¿¸ö״̬·â×°µ½Ò»¸ö¶ÀÁ¢µÄÀàÖУ¬ÀûÓöà̬ÐÔʹµÃ²»Í¬×´Ì¬ÏÂͬһÖÖ·½·¨±íÏÖ²»Í¬µÄÐÐΪ¡£

״̬ģʽµÄUMLͼÈçÏ£º

ÐǼÊÖÐÈË×åµÄ»úǹ±øMarineÓÐÁ½ÖÖ״̬£ºÆÕͨ״̬ºÍ´òÁËÐË·ÜÕëºóµÄ״̬£¬Á½ÖÖ״̬Ï»úǹ±øµÄ¿ªÇ¹ÆµÂÊÊDz»Í¬µÄ£¬ÎÒÃÇÓÃ״̬ģʽÀ´ÊµÏÖ»úǹ±øµÄfire()·½·¨¡£

 

Ê×Ïȶ¨Òå³éÏó״̬State½Ó¿Ú£¬Õâ¸ö½Ó¿ÚÖ¸¶¨ÁË»úǹ±øµÄfireÐÐΪ£º

public interface State {
    public void fire();
}

State½Ó¿ÚÓÐÒ»¸öfire()·½·¨£¬ÎÒÃÇʵÏÖÁ½¸ö×ÓÀàNormalStateºÍExcitedState£¬·Ö±ð±íʾÆÕͨ״̬ºÍ´òÁËÐË·ÜÕëºóµÄ״̬£¬²¢ÊµÏÖ¾ßÌåµÄfire·½·¨£º

public class NormalState implements State {
    public void fire() {
       System.out.println("ÆÕͨ״̬ÿÃ뿪ǹ1´Î¡£");
    }
}
public class ExcitedState implements State {
    public void fire() {
       System.out.println("ÐË·Ü״̬ÿÃ뿪ǹ2´Î¡£");
    }
}
 








×îºó£¬¶¨Òå»úǹ±øÀàMarine£¬Ã¿¸öMarineµÄʵÀý´ú±íÒ»¸ö»úǹ±ø£º

public class Marine {
    // ±£³ÖÒ»¸ö״̬ÀàµÄʵÀý£º
    private State state = new NormalState();
 
    // Ϊ»úǹ±øÉèÖÃ״̬£º
    public void setState(State state) {
       this.state = state;
    }
 
    // fire()·½·¨£¬Êµ¼Êµ÷ÓõÄÊÇstate±äÁ¿µÄfire()·½·¨£º
    public void fire() {
       state.fire();
    }
}

×îºóÎÒÃÇ¿´¿´ÈçºÎÔÚ¿Í»§¶Ë¿ØÖÆÒ»¸ö»úǹ±øµÄ״̬£º

public static void main(String[] args) {
    // ´´½¨Ò»¸ö»úǹ±øµÄʵÀý£º
    Marine marine = new Marine();
    // µ÷ÓÃfire()·½·¨£º
    marine.fire();
    // ÉèÖÃΪÐË·Ü״̬£º
    marine.setState(new ExcitedState());
    // ÔÙµ÷ÓÃfire()·½·¨£º
    marine.fire();
}

¶Ôͬһ¸öMarine¶ÔÏóµ÷ÓÃÁ½´Îfire()·½·¨£¬ÆÁÄ»Êä³öΪ£º

ÆÕͨ״̬ÿÃ뿪ǹ1´Î¡£
ÐË·Ü״̬ÿÃ뿪ǹ2´Î¡£

¿É¼û»úǹ±øÔÚÁ½ÖÖ״̬ϵÄͬһ¸öfire()·½·¨Óв»Í¬µÄÐÐΪ¡£

ʹÓÃ״̬ģʽµÄºÃ´¦ÊÇÿ¸ö״̬±»·â×°µ½Ò»¸ö¶ÀÁ¢µÄÀàÖУ¬ÕâЩÀà¿ÉÒÔ¶ÀÁ¢±ä»¯£¬¶øÖ÷¶ÔÏóÖÐûÓз±ËöµÄswich-caseÓï¾ä£¬²¢ÇÒÌí¼ÓеÄ״̬·Ç³£ÈÝÒ×£¬Ö»ÐèÒª´ÓStateÅÉÉúÒ»¸öÐÂÀ༴¿É¡£

 

 

ÉÏһƪ£ºAOPÊÇʲô£¿

ÏÂһƪ£ºAdapterģʽÔÚJ2SEʼþ´¦ÀíÖеÄÓ¦ÓÃ

  • ApacheͨÓÃÈÕÖ¾°ü¸ÅÊö
  • Java1.5ÓïÑÔÐÂÌØÐÔ¼òµ¥×ܽá
  • Jive ÖеÄÉè¼ÆÄ£Ê½ (Design Pattern)
  • NokiaµÄJ2MEпª·¢¹¤¾ß¡ª¡ªNokia Developer¡¯s Suite 3.0 for J2ME¹¦ÄܽéÉÜ
  • JavaÖеÄcookie¹ÜÀí·½°¸(4)-ÓëJ2ME½áºÏ
  • win2003 +mysql-4.0.2+ Tomcat 5.0µÄÅäÖÃ
  • JDBC¸ÅÊö
  • Tomcatºǫ́ÄÃshell
  • JavaÈëÃÅÐèÕÆÎÕµÄ30¸ö»ù±¾¸ÅÄî
  • ÔÚcsdnÉÏ¿´µ½µÄ¹ÖÎÊÌâ
  • ÊÕ¼¯µÄһЩpython³ÌÐò£¬ÊµÓò¢ÇÒÓÐȤ
  • ΪºÎ³ÆÖ®ÎªJava£¿
  • minij2ee³£¼ûÎÊÌ⣨FAQ£©
  • ²ËÄñ³õѧJavaµÄ±¸Íü¼£¨Èý£©
  • useful eclipse plugins
  • ¿ª·¢ÍêÕûJ2EE½â¾ö·½°¸µÄ°Ë¸ö²½Öè 6
  • configuration for eclipseME plugin in eclipse 3.1[eclipse ME ÔÚeclipse 3.1ÖеÄÅäÖã¨ÒÔMOTOΪÀý)]
  • ¸ñʽ»¯ÏûÏ¢£¨²ÎÊýÌæ»»)
  • ¡¾·µ»Ø¡¿ ¡¾¶¥²¿¡¿ ¡¾¹Ø±Õ¡¿
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    °æÈ¨ËùÓÐ:JAVAÑ§Ï°Íø ±¸°¸ÐòºÅ:ÍîICP±¸06004238ºÅ