״̬ģʽ֮ÐǼÊÓ¦ÓÃ
¡¡2008-01-05 20:17:56¡¡À´Ô´£ºWEB¿ª·¢Íø¡¡¡¡¡¡ºËÐÄÌáʾ£ºÒ»¸ö¶ÔÏóÓжàÖÖ״̬£¬ÔÚ²»Í¬µÄ״̬Ï£¬×´Ì¬Ä£Ê½Ö®ÐǼÊÓ¦Ó㬠ͬһÖÖ·½·¨Óв»Í¬µÄÐÐΪ£¬¼ÙÈçÓÃswich-caseÓï¾ä£¬²¢ÊµÏÖ¾ßÌåµÄfire·½·¨
Ò»¸ö¶ÔÏóÓжàÖÖ״̬£¬ÔÚ²»Í¬µÄ״̬Ï£¬ ͬһÖÖ·½·¨Óв»Í¬µÄÐÐΪ¡£¼ÙÈçÓÃ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´Î¡£");¡¡ }}½øÈëÌÖÂÛ×éÌÖÂÛ¡£
¸ü¶à¾«²Ê
ÔÞÖúÉÌÁ´½Ó