ÕýÔÚÔĶÁ£º×´Ì¬Ä£Ê½Ö®ÐǼÊÓ¦ÓÃ״̬ģʽ֮ÐǼÊÓ¦ÓÃ

2004-02-17 10:08 ³ö´¦£ºCSDN ×÷Õߣºasklxf ÔðÈα༭£ºlinjixiong

Ò»¸ö¶ÔÏóÓжàÖÖ״̬£¬ÔÚ²»Í¬µÄ״̬Ï£¬Í¬Ò»ÖÖ·½·¨Óв»Í¬µÄÐÐΪ¡£Èç¹ûÓÃ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´Î¡£");
    }
}
 
×÷Õß±ÊÃû¼ò¶ÌÄÚÈÝ ·¢±íʱ¼ä
:



¼üÅÌÒ²ÄÜ·­Ò³£¬ÊÔÊÔ¡°¡û ¡ú¡±¼ü

¹Ø×¢ÎÒÃÇ

×îÐÂ×ÊѶÀëÏßËæʱ¿´ ÁÄÌìͲÛÓ®½±Æ·