·¢²¼Ê±¼ä : ÐÇÆÚÈÕ ÎÄÕÂÈí¼þÉè¼ÆÓëÌåϵ½á¹¹Á·Ï°Ìâ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ
18. Éè¼ÆÒ»¸öʹÓü¸ÖÖÅÅÐòËã·¨¶ÔÕûÊý½øÐÐÅÅÐòµÄ³ÌÐò¡£¸Ã³ÌÐò¿ÉÒÔ¼ÆËã³öÿÖÖÅÅÐòËã·¨µÄÖ´ÐÐ
ʱ¼ä£¬ÒÔ±ã±È½Ï¸÷ÖÖÅÅÐòËã·¨µÄËٶȡ£¸Ã³ÌÐò¿ÉÒÔÖ§³Ö²åÈëÅÅÐò£¨InsertionSort£©¡¢¿ìËÙÅÅÐò£¨QuickSort£©¡¢Ã°ÅÝÅÅÐò£¨BubbleSort£©¡¢¶ÑÅÅÐò£¨HeapSort£©¡£ÇëʹÓòßÂÔģʽ½øÐÐÉè¼Æ£¬»³öÉè¼ÆÀàͼ¡£
19. ÀûÓÃ״̬ģʽÉè¼ÆµÄWeather StateµÄʵÀý¡£ÔÚ±¾ÀýÖУ¬¿¼ÂÇÌìÆø״̬¡£ÌìÆø״̬¿ÉÒÔ·Ö
Ϊ£ºÇçÌì״̬(Sunny State)£¬ÏÂÓê״̬(Rainy State)£¬¹Î·ç״̬(Windy State)£¬ÏÂÑ©£¨Snowing State£©¡£ÔÚÇçÌì״̬£¬Ñô¹âÆÕÕÕ£»ÔÚÓêÌì״̬ÎÚÔÆÃܲ¼£¬ÏÂÓ겻ͣ£»Ôڹηç״̬£¬´ó·ç¹ÎµÃÌì»èµØ°µ£»ÔÚÏÂѩ״̬£¬´óÑ©·×·É¡£ÓÃ״̬ģʽ·â×°ÌìÆø״̬¡£ÎªÁ˱í´ïÌìÓв»²â·çÔƵÄ˼Ï룬¼ÙÉèÌìÆø״̬ÊÇËæ»ú¸Ä±äµÄ£¬¼´ÔÚËÄÖÖ״̬֮¼äµÄÇл»ÊǸù±¾Ã»ÓйæÂÉ¿Éѵģ¬Òò´Ë£¬¿¼ÂÇÔÚ³éÏóÀàWeatherStateÖеķ½·¨changeState(Context cxt)µÄʵÏÖÖУ¬Ê¹ÓÃÄܲúÉúËæ»úÕûÊýµÄRandomÀà¡£Òò´Ë£¬¾ßÌå״̬µÄ¸Ä±ä£¬ÓɳéÏóÀàWeatherState¸ºÔðʵÏÖ¡£Çë²ÉÓó£¹æµÄ״̬ģʽ½øÐÐÉè¼Æ£¬»³öÉè¼ÆÀàͼ¡£ WeatherState -ctx: Context
state +createStateObj() Context +changeState(Context cxt ):void
-state: WeatherState +setState()£ºString +getCurrentState():String +getState() +action(): String +doAction():void
SunnyState WindyState RainyState SnowingState +action():String +action(): String +act(): String +act(): String
+changeState() +changeState() +changeState() +changeState() +setState():String +setState():String +setState():String +setState():String
20. Ëæ»úÉú³ÉÒ»¸öÕûÊý¾ØÕ󣬾ØÕó¿ÉÒÔ¿´×öÊǾۺÏÀàÐ͵ÄÊý¾Ý¡£Ê¹Óõü´úÆ÷ģʽÉè¼Æ£¬¶Ô¸Ã
¾ØÕó½øÐв»Í¬µÄ±éÀú£º£¨1£©ÆæÊý±éÀú(OddIterator)£¬·ÃÎʲ¢Í³¼Æ¾ØÕóÖеÄËùÓÐÆæÊý¡££¨2£©Å¼Êý±éÀú(EvenIterator)£¬·ÃÎʲ¢Í³¼Æ¾ØÕóÖеÄËùÓÐżÊý¡££¨3£©Ð±¶Ô½ÇÏß±éÀú(DiagonalIterator), °´ÕÕб¶Ô½ÇÏßµü´ú±éÀú¾ØÕó¡£ÇëÓ¦Óõü´úÆ÷ģʽ½øÐÐÉè¼Æ£¬»³öÉè¼ÆÀàͼ¡£
21.
ÊÒÄÚζȿØÖÆÈí¼þÉè¼Æ¡£ÊÒÄÚζȿØÖÆÐèÒª¾ß±¸´°»§¡¢·çÉÈ¡¢¿Õµ÷µÄ×Ô¶¯¿ªÆôÓë¹Ø±Õ¹¦ÄÜ¡£Òò´Ë£¬¸ÃÓ¦ÓÃÐèÒªÉè¼ÆÈý¸öÀ࣬·Ö±ðÓÃÓÚ·â×°´°»§¡¢·çÉÈ¡¢¿Õµ÷¡£ÇëÀûÓÃÃüÁîģʽÉè¼Æ¸ÃÓ¦Ó㬻³öÉè¼ÆÀàͼ¡£
22. ÏÂͼËùʾÊÇÒ»¸öµ÷ÓÃÅÅÐòËã·¨µÄÉè¼Æͼ¡£ÔÚʵÏÖʱ£¬µ÷ÓÃÕßInvokerͨ¹ýÌõ¼þÅжÏÓï¾äµ÷ÓÃ
ÏàÓ¦µÄÅÅÐòËã·¨£¬µ÷ÓÃÕßInvokerºÍ½ÓÊÕÕßReceiverÖ®¼äÊǽôñîºÏµÄ¡£
ÇëʹÓÃÃüÁîģʽÔÚInvokerÓëReceiverÖ®¼ä½øÐнâñÉè¼ÆÏàÓ¦µÄÀ࣬²¢»æÖÆÉè¼ÆÀàͼ¡£