Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Éè¼ÆÄ£Ê½Ö®11¸öÐÐΪÐÍģʽ
 
  2687  次浏览      27
 2018-12-25
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ51cto,±¾ÎÄÖ÷ÒªÉè¼ÆÄ£Ê½µÄ11¸öÐÐΪÐÍģʽ£¬Í¨¹ýÐÐΪÐÍģʽ£¬¿ÉÒÔ¸ü¼ÓÇåÎúµØ»®·ÖÀàÓë¶ÔÏóµÄÖ°Ô𣬲¢Ñо¿ÏµÍ³ÔÚÔËÐÐʱʵÀý¶ÔÏóÖ®¼äµÄ½»»¥¡£

ÐÐΪÐÍģʽ¸ÅÊö

ÐÐΪÐÍģʽ(Behavioral Pattern)ÊǶÔÔÚ²»Í¬µÄ¶ÔÏóÖ®¼ä»®·ÖÔðÈκÍËã·¨µÄ³éÏ󻯡£

ÐÐΪÐÍģʽ²»½ö½ö¹Ø×¢ÀàºÍ¶ÔÏóµÄ½á¹¹£¬¶øÇÒÖØµã¹Ø×¢ËüÃÇÖ®¼äµÄÏ໥×÷Óá£

ÔÚϵͳÔËÐÐʱ£¬¶ÔÏó²¢²»ÊǹÂÁ¢µÄ£¬ËüÃÇ¿ÉÒÔͨ¹ýÏ໥ͨÐÅÓëЭ×÷Íê³ÉijЩ¸´ÔÓ¹¦ÄÜ£¬Ò»¸ö¶ÔÏóÔÚÔËÐÐʱҲ½«Ó°Ïìµ½ÆäËû¶ÔÏóµÄÔËÐС£

ÐÐΪÐͼò½é

Ö°ÔðÁ´Ä£Ê½(Chain of Responsibility)

ÃüÁîģʽ(Command)

½âÊÍÆ÷ģʽ(Interpreter)

µü´úÆ÷ģʽ(Iterator)

ÖнéÕßģʽ(Mediator)

±¸Íü¼ģʽ(Memento)

¹Û²ìÕßģʽ(Observer)

״̬ģʽ(State)

²ßÂÔģʽ(Strategy)

Ä£°å·½·¨Ä£Ê½(Template Method)

·ÃÎÊÕßģʽ(Visitor)

1.Ö°ÔðÁ´Ä£Ê½

1.1 ¶¯»ú

Ö°ÔðÁ´¿ÉÒÔÊÇÒ»ÌõÖ±Ïß¡¢Ò»¸ö»·»òÕßÒ»¸öÊ÷Ðνṹ£¬×î³£¼ûµÄÖ°ÔðÁ´ÊÇÖ±ÏßÐÍ£¬¼´ÑØ×ÅÒ»Ìõµ¥ÏòµÄÁ´À´´«µÝÇëÇó¡£

Á´ÉϵÄÿһ¸ö¶ÔÏó¶¼ÊÇÇëÇó´¦ÀíÕߣ¬Ö°ÔðÁ´Ä£Ê½¿ÉÒÔ½«ÇëÇóµÄ´¦ÀíÕß×éÖ¯³ÉÒ»ÌõÁ´£¬²¢Ê¹ÇëÇóÑØ×ÅÁ´´«µÝ£¬ÓÉÁ´ÉϵĴ¦ÀíÕß¶ÔÇëÇó½øÐÐÏàÓ¦µÄ´¦Àí£¬¿Í»§¶ËÎÞÐë¹ØÐÄÇëÇóµÄ´¦Àíϸ½ÚÒÔ¼°ÇëÇóµÄ´«µÝ£¬Ö»Ð轫ÇëÇó·¢Ë͵½Á´Éϼ´¿É£¬½«ÇëÇóµÄ·¢ËÍÕߺÍÇëÇóµÄ´¦ÀíÕß½âñî¡£Õâ¾ÍÊÇÖ°ÔðÁ´Ä£Ê½µÄģʽ¶¯»ú¡£

1.2 Ààͼ

Handler: ³éÏó´¦ÀíÕß

ConcreteHandler: ¾ßÌå´¦ÀíÕß

Client: ¿Í»§Àà

1.3 Óŵã

½µµÍñîºÏ¶È

¿É¼ò»¯¶ÔÏóµÄÏ໥Á¬½Ó

ÔöÇ¿¸ø¶ÔÏóÖ¸ÅÉÖ°ÔðµÄÁé»îÐÔ

Ôö¼ÓеÄÇëÇó´¦ÀíÀàºÜ·½±ã

1.4ȱµã

²»Äܱ£Ö¤ÇëÇóÒ»¶¨±»½ÓÊÕ¡£

ϵͳÐÔÄܽ«Êܵ½Ò»¶¨Ó°Ï죬¶øÇÒÔÚ½øÐдúÂëµ÷ÊÔʱ²»Ì«·½±ã£»¿ÉÄÜ»áÔì³ÉÑ­»·µ÷Óá£

1.5Çé¾°

Óжà¸ö¶ÔÏó¿ÉÒÔ´¦Àíͬһ¸öÇëÇ󣬾ßÌåÄĸö¶ÔÏó´¦Àí¸ÃÇëÇóÓÉÔËÐÐʱ¿Ì×Ô¶¯È·¶¨¡£

ÔÚ²»Ã÷È·Ö¸¶¨½ÓÊÕÕßµÄÇé¿öÏ£¬Ïò¶à¸ö¶ÔÏóÖеÄÒ»¸öÌá½»Ò»¸öÇëÇó¡£

¿É¶¯Ì¬Ö¸¶¨Ò»×é¶ÔÏó´¦ÀíÇëÇó¡£

±ÈÈç

ÔçÆÚµÄJava AWTʼþÄ£ÐÍ(JDK 1.0¼°¸üÔç)

JavaÖеÄÒì³£´¦Àí»úÖÆ

2.ÃüÁîģʽ

2.1 ¶¯»ú

ÃüÁîģʽ¿ÉÒÔ¶Ô·¢ËÍÕߺͽÓÊÕÕßÍêÈ«½âñ·¢ËÍÕßÓë½ÓÊÕÕßÖ®¼äûÓÐÖ±½ÓÒýÓùØÏµ£¬·¢ËÍÇëÇóµÄ¶ÔÏóÖ»ÐèÒªÖªµÀÈçºÎ·¢ËÍÇëÇ󣬶ø²»±ØÖªµÀÈçºÎÍê³ÉÇëÇó¡£Õâ¾ÍÊÇÃüÁîģʽµÄģʽ¶¯»ú¡£

2.2 Ààͼ

Command: ³éÏóÃüÁîÀà

ConcreteCommand: ¾ßÌåÃüÁîÀà

Invoker: µ÷ÓÃÕß

Receiver: ½ÓÊÕÕß

Client:¿Í»§Àà

2.3 Óŵã

½µµÍϵͳµÄñîºÏ¶È¡£

еÄÃüÁî¿ÉÒÔºÜÈÝÒ׵ؼÓÈ뵽ϵͳÖС£

¿ÉÒԱȽÏÈÝÒ×µØÉè¼ÆÒ»¸öÃüÁî¶ÓÁкͺêÃüÁ×éºÏÃüÁ¡£

¿ÉÒÔ·½±ãµØÊµÏÖ¶ÔÇëÇóµÄUndoºÍRedo¡£

2.4 ȱµã

ʹÓÃÃüÁîģʽ¿ÉÄܻᵼÖÂijЩϵͳÓйý¶àµÄ¾ßÌåÃüÁîÀà¡£ÒòΪÕë¶Ôÿһ¸öÃüÁî¶¼ÐèÒªÉè¼ÆÒ»¸ö¾ßÌåÃüÁîÀ࣬Òò´ËijЩϵͳ¿ÉÄÜÐèÒª´óÁ¿¾ßÌåÃüÁîÀ࣬Õ⽫ӰÏìÃüÁîģʽµÄʹÓá£

2.5 Çé¾°

ϵͳÐèÒª½«ÇëÇóµ÷ÓÃÕߺÍÇëÇó½ÓÊÕÕß½âñʹµÃµ÷ÓÃÕߺͽÓÊÕÕß²»Ö±½Ó½»»¥¡£

ϵͳÐèÒªÔÚ²»Í¬µÄʱ¼äÖ¸¶¨ÇëÇó¡¢½«ÇëÇóÅŶӺÍÖ´ÐÐÇëÇó¡£

ϵͳÐèÒªÖ§³ÖÃüÁîµÄ³·Ïú(Undo)²Ù×÷ºÍ»Ö¸´(Redo)²Ù×÷¡£

ϵͳÐèÒª½«Ò»×é²Ù×÷×éºÏÔÚÒ»Æð£¬¼´Ö§³ÖºêÃüÁî¡£

È磺ίÅÉʼþÄ£ÐÍ

3.½âÊÍÆ÷ģʽ

4.µü´úÆ÷ģʽ

5.ÖнéÕßģʽ

5.1 ¶¯»ú

ÔÚÃæÏò¶ÔÏóµÄÈí¼þÉè¼ÆÓ뿪·¢¹ý³ÌÖУ¬¸ù¾Ý¡°µ¥Ò»Ö°ÔðÔ­Ôò¡±£¬ÎÒÃÇÓ¦¸Ã¾¡Á¿½«¶ÔÏóϸ»¯£¬Ê¹ÆäÖ»¸ºÔð»ò³ÊÏÖµ¥Ò»µÄÖ°Ôð¡£

¶ÔÓÚÒ»¸öÄ£¿é£¬¿ÉÄÜÓɺܶà¶ÔÏ󹹳ɣ¬¶øÇÒÕâЩ¶ÔÏóÖ®¼ä¿ÉÄÜ´æÔÚÏ໥µÄÒýÓã¬ÎªÁ˼õÉÙ¶ÔÏóÁ½Á½Ö®¼ä¸´ÔÓµÄÒýÓùØÏµ£¬Ê¹Ö®³ÉΪһ¸öËÉñîºÏµÄϵͳ£¬ÎÒÃÇÐèҪʹÓÃÖнéÕßģʽ£¬Õâ¾ÍÊÇÖнéÕßģʽµÄģʽ¶¯»ú¡£

5.2 Ààͼ

Mediator: ³éÏóÖнéÕß

ConcreteMediator: ¾ßÌåÖнéÕß

Colleague: ³éÏóͬÊÂÀà

ConcreteColleague: ¾ßÌåͬÊÂÀà

5.3 Óŵã

¼ò»¯Á˶ÔÏóÖ®¼äµÄ½»»¥¡£

½«¸÷ͬʽâñî¡£

¼õÉÙ×ÓÀàÉú³É¡£

¿ÉÒÔ¼ò»¯¸÷ͬÊÂÀàµÄÉè¼ÆºÍʵÏÖ¡£

5.4 ȱµã

ÔÚ¾ßÌåÖнéÕßÀàÖаüº¬ÁËͬÊÂÖ®¼äµÄ½»»¥Ï¸½Ú£¬¿ÉÄܻᵼÖ¾ßÌåÖнéÕßÀà·Ç³£¸´ÔÓ£¬Ê¹µÃϵͳÄÑÒÔά»¤¡£

5.5 Çé¾°

ϵͳÖжÔÏóÖ®¼ä´æÔÚ¸´ÔÓµÄÒýÓùØÏµ£¬²úÉúµÄÏ໥ÒÀÀµ¹ØÏµ½á¹¹»ìÂÒÇÒÄÑÒÔÀí½â¡£

Ò»¸ö¶ÔÏóÓÉÓÚÒýÓÃÁËÆäËûºÜ¶à¶ÔÏó²¢ÇÒÖ±½ÓºÍÕâЩ¶ÔÏóͨÐÅ£¬µ¼ÖÂÄÑÒÔ¸´ÓøöÔÏó¡£

Ïëͨ¹ýÒ»¸öÖмäÀàÀ´·â×°¶à¸öÀàÖеÄÐÐΪ£¬¶øÓÖ²»ÏëÉú³ÉÌ«¶àµÄ×ÓÀà¡£¿ÉÒÔͨ¹ýÒýÈëÖнéÕßÀàÀ´ÊµÏÖ£¬ÔÚÖнéÕßÖж¨Òå¶ÔÏó½»»¥µÄ¹«¹²ÐÐΪ£¬Èç¹ûÐèÒª¸Ä±äÐÐΪÔò¿ÉÒÔÔö¼ÓеÄÖнéÕßÀà¡£

6.±¸Íü¼

6.1¶¯»ú

ÔÚÓ¦ÓÃÈí¼þµÄ¿ª·¢¹ý³ÌÖУ¬ºÜ¶àʱºòÎÒÃǶ¼ÐèÒª¼Ç¼һ¸ö¶ÔÏóµÄÄÚ²¿×´Ì¬¡£

ÔÚ¾ßÌåʵÏÖ¹ý³ÌÖУ¬ÎªÁËÔÊÐíÓû§È¡Ïû²»È·¶¨µÄ²Ù×÷»ò´Ó´íÎóÖлָ´¹ýÀ´£¬ÐèҪʵÏÖ±¸·ÝµãºÍ³·Ïú»úÖÆ£¬¶øÒªÊµÏÖÕâЩ»úÖÆ£¬±ØÐëÊÂÏȽ«×´Ì¬ÐÅÏ¢±£´æÔÚij´¦£¬ÕâÑù²ÅÄܽ«¶ÔÏó»Ö¸´µ½ËüÃÇÔ­ÏȵÄ״̬¡£±¸Íü¼ģʽÊÇÒ»ÖÖ¸øÎÒÃǵÄÈí¼þÌṩºó»ÚÒ©µÄ»úÖÆ£¬Í¨¹ýËü¿ÉÒÔʹϵͳ»Ö¸´µ½Ä³Ò»Ìض¨µÄÀúʷ״̬¡£

6.2Ààͼ

Originator: Ô­·¢Æ÷

Memento: ±¸Íü¼

Caretaker: ¸ºÔðÈË

6.3Óŵã

ÌṩÁËÒ»ÖÖ״̬»Ö¸´µÄʵÏÖ»úÖÆ£¬Ê¹µÃÓû§¿ÉÒÔ·½±ãµØ»Øµ½Ò»¸öÌØ¶¨µÄÀúÊ·²½Ö裬µ±ÐµÄ״̬ÎÞЧ»òÕß´æÔÚÎÊÌâʱ£¬¿ÉÒÔʹÓÃÏÈǰ´æ´¢ÆðÀ´µÄ±¸Íü¼½«×´Ì¬¸´Ô­¡£

ʵÏÖÁËÐÅÏ¢µÄ·â×°£¬Ò»¸ö±¸Íü¼¶ÔÏóÊÇÒ»ÖÖÔ­·¢Æ÷¶ÔÏóµÄ±íʾ£¬²»»á±»ÆäËû´úÂë¸Ä¶¯£¬ÕâÖÖģʽ¼ò»¯ÁËÔ­·¢Æ÷¶ÔÏ󣬱¸Íü¼ֻ±£´æÔ­·¢Æ÷µÄ״̬£¬²ÉÓöÑÕ»À´´æ´¢±¸Íü¼¶ÔÏó¿ÉÒÔʵÏÖ¶à´Î³·Ïú²Ù×÷£¬¿ÉÒÔͨ¹ýÔÚ¸ºÔðÈËÖж¨Ò弯ºÏ¶ÔÏóÀ´´æ´¢¶à¸ö±¸Íü¼¡£

6.4ȱµã

×ÊÔ´ÏûºÄ¹ý´ó£¬Èç¹ûÀàµÄ³ÉÔ±±äÁ¿Ì«¶à£¬¾Í²»¿É±ÜÃâÕ¼ÓôóÁ¿µÄÄڴ棬¶øÇÒÿ±£´æÒ»´Î¶ÔÏóµÄ״̬¶¼ÐèÒªÏûºÄÄÚ´æ×ÊÔ´£¬Èç¹ûÖªµÀÕâÒ»µã´ó¼Ò¾ÍÈÝÒ×Àí½âΪʲôһЩÌṩÁ˳·Ïú¹¦ÄܵÄÈí¼þÔÚÔËÐÐʱËùÐèµÄÄÚ´æºÍÓ²Å̿ռä±È½Ï´óÁË¡£

6.5Çé¾°

±£´æÒ»¸ö¶ÔÏóÔÚijһ¸öʱ¿ÌµÄ״̬»ò²¿·Ö״̬£¬ÕâÑùÒÔºóÐèҪʱËüÄܹ»»Ö¸´µ½ÏÈǰµÄ״̬¡£

Èç¹ûÓÃÒ»¸ö½Ó¿ÚÀ´ÈÃÆäËû¶ÔÏóµÃµ½ÕâЩ״̬£¬½«»á±©Â¶¶ÔÏóµÄʵÏÖϸ½Ú²¢ÆÆ»µ¶ÔÏóµÄ·â×°ÐÔ£¬Ò»¸ö¶ÔÏó²»Ï£ÍûÍâ½çÖ±½Ó·ÃÎÊÆäÄÚ²¿×´Ì¬£¬Í¨¹ý¸ºÔðÈË¿ÉÒÔ¼ä½Ó·ÃÎÊÆäÄÚ²¿×´Ì¬¡£

7.¹Û²ìÕßģʽ(Observer)

7.1¶¯»ú

¹Û²ìÕßģʽ(Observer Pattern)£º¶¨Òå¶ÔÏó¼äµÄÒ»ÖÖÒ»¶Ô¶àÒÀÀµ¹ØÏµ£¬Ê¹µÃÿµ±Ò»¸ö¶ÔÏó״̬·¢Éú¸Ä±äʱ£¬ÆäÏà¹ØÒÀÀµ¶ÔÏó½ÔµÃµ½Í¨Öª²¢±»×Ô¶¯¸üС£¹Û²ìÕßģʽÓÖ½Ð×ö·¢²¼-¶©ÔÄ£¨Publish/Subscribe£©Ä£Ê½¡¢Ä£ÐÍ-ÊÓͼ£¨Model/View£©Ä£Ê½¡¢Ô´-¼àÌýÆ÷£¨Source/Listener£©Ä£Ê½»ò´ÓÊôÕߣ¨Dependents£©Ä£Ê½¡£¹Û²ìÕßģʽÊÇÒ»ÖÖ¶ÔÏóÐÐΪÐÍģʽ¡£

7.2Ààͼ

Subject: Ä¿±ê

ConcreteSubject: ¾ßÌåÄ¿±ê

Observer: ¹Û²ìÕß

ConcreteObserver: ¾ßÌå¹Û²ìÕß

7.3Óŵã

¹Û²ìÕßģʽ¿ÉÒÔʵÏÖ±íʾ²ãºÍÊý¾ÝÂß¼­²ãµÄ·ÖÀ룬²¢¶¨ÒåÁËÎȶ¨µÄÏûÏ¢¸üд«µÝ»úÖÆ£¬³éÏóÁ˸üнӿڣ¬Ê¹µÃ¿ÉÒÔÓи÷ÖÖ¸÷Ñù²»Í¬µÄ±íʾ²ã×÷Ϊ¾ßÌå¹Û²ìÕß½ÇÉ«¡£

¹Û²ìÕßģʽÔÚ¹Û²ìÄ¿±êºÍ¹Û²ìÕßÖ®¼ä½¨Á¢Ò»¸ö³éÏóµÄñîºÏ¡£

¹Û²ìÕßģʽ֧³Ö¹ã²¥Í¨ÐÅ¡£¹Û²ìÕßģʽ·ûºÏ¡°¿ª±ÕÔ­Ôò¡±µÄÒªÇó¡£

7.4ȱµã

Èç¹ûÒ»¸ö¹Û²ìÄ¿±ê¶ÔÏóÓкܶàÖ±½ÓºÍ¼ä½ÓµÄ¹Û²ìÕߵϰ£¬½«ËùÓеĹ۲ìÕß¶¼Í¨Öªµ½»á»¨·ÑºÜ¶àʱ¼ä¡£

Èç¹ûÔÚ¹Û²ìÕߺ͹۲ìÄ¿±êÖ®¼äÓÐÑ­»·ÒÀÀµµÄ»°£¬¹Û²ìÄ¿±ê»á´¥·¢ËüÃÇÖ®¼ä½øÐÐÑ­»·µ÷Ó㬿ÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£

¹Û²ìÕßģʽûÓÐÏàÓ¦µÄ»úÖÆÈù۲ìÕßÖªµÀËù¹Û²ìµÄÄ¿±ê¶ÔÏóÊÇÔõô·¢Éú±ä»¯µÄ£¬¶ø½ö½öÖ»ÊÇÖªµÀ¹Û²ìÄ¿±ê·¢ÉúÁ˱仯¡£

7.5Çé¾°

Ò»¸ö³éÏóÄ£ÐÍÓÐÁ½¸ö·½Ã棬ÆäÖÐÒ»¸ö·½ÃæÒÀÀµÓÚÁíÒ»¸ö·½Ãæ¡£½«ÕâЩ·½Ãæ·â×°ÔÚ¶ÀÁ¢µÄ¶ÔÏóÖÐʹËüÃÇ¿ÉÒÔ¸÷×Ô¶ÀÁ¢µØ¸Ä±äºÍ¸´Óá£

Ò»¸ö¶ÔÏóµÄ¸Ä±ä½«µ¼ÖÂÆäËûÒ»¸ö»ò¶à¸ö¶ÔÏóÒ²·¢Éú¸Ä±ä£¬¶ø²»ÖªµÀ¾ßÌåÓжàÉÙ¶ÔÏ󽫷¢Éú¸Ä±ä£¬¿ÉÒÔ½µµÍ¶ÔÏóÖ®¼äµÄñîºÏ¶È¡£

Ò»¸ö¶ÔÏó±ØÐë֪ͨÆäËû¶ÔÏ󣬶ø²¢²»ÖªµÀÕâЩ¶ÔÏóÊÇË­¡£ÐèÒªÔÚϵͳÖд´½¨Ò»¸ö´¥·¢Á´£¬A¶ÔÏóµÄÐÐΪ½«Ó°ÏìB¶ÔÏó£¬B¶ÔÏóµÄÐÐΪ½«Ó°ÏìC¶ÔÏó¡­¡­£¬¿ÉÒÔʹÓù۲ìÕßģʽ´´½¨Ò»ÖÖÁ´Ê½´¥·¢»úÖÆ¡£

8.״̬ģʽ(State)

8.1¶¯»ú

״̬ģʽ(State Pattern) £ºÔÊÐíÒ»¸ö¶ÔÏóÔÚÆäÄÚ²¿×´Ì¬¸Ä±äʱ¸Ä±äËüµÄÐÐΪ£¬¶ÔÏó¿´ÆðÀ´ËƺõÐÞ¸ÄÁËËüµÄÀà¡£Æä±ðÃûΪ״̬¶ÔÏó(Objects for States)£¬×´Ì¬Ä£Ê½ÊÇÒ»ÖÖ¶ÔÏóÐÐΪÐÍģʽ¡£

8.2Ààͼ

Context: »·¾³Àà

State: ³éÏó״̬Àà

ConcreteState: ¾ßÌå״̬Àà

8.3Óŵã

·â×°ÁËת»»¹æÔò¡£

ö¾Ù¿ÉÄܵÄ״̬£¬ÔÚö¾Ù״̬֮ǰÐèҪȷ¶¨×´Ì¬ÖÖÀà¡£

½«ËùÓÐÓëij¸ö״̬ÓйصÄÐÐΪ·Åµ½Ò»¸öÀàÖУ¬²¢ÇÒ¿ÉÒÔ·½±ãµØÔö¼ÓеÄ״̬£¬Ö»ÐèÒª¸Ä±ä¶ÔÏó״̬¼´¿É¸Ä±ä¶ÔÏóµÄÐÐΪ¡£

ÔÊÐí״̬ת»»Âß¼­Óë״̬¶ÔÏóºÏ³ÉÒ»Ì壬¶ø²»ÊÇijһ¸ö¾Þ´óµÄÌõ¼þÓï¾ä¿é¡£¿ÉÒÔÈöà¸ö»·¾³¶ÔÏó¹²ÏíÒ»¸ö״̬¶ÔÏ󣬴Ӷø¼õÉÙϵͳÖжÔÏóµÄ¸öÊý¡£

8.4ȱµã

״̬ģʽµÄʹÓñØÈ»»áÔö¼ÓϵͳÀàºÍ¶ÔÏóµÄ¸öÊý¡£

״̬ģʽµÄ½á¹¹ÓëʵÏÖ¶¼½ÏΪ¸´ÔÓ£¬Èç¹ûʹÓò»µ±½«µ¼Ö³ÌÐò½á¹¹ºÍ´úÂëµÄ»ìÂÒ¡£

״̬ģʽ¶Ô¡°¿ª±ÕÔ­Ôò¡±µÄÖ§³Ö²¢²»Ì«ºÃ£¬¶ÔÓÚ¿ÉÒÔÇл»×´Ì¬µÄ״̬ģʽ£¬Ôö¼ÓеÄ״̬ÀàÐèÒªÐÞ¸ÄÄÇЩ¸ºÔð״̬ת»»µÄÔ´´úÂ룬·ñÔòÎÞ·¨Çл»µ½ÐÂÔö״̬£»¶øÇÒÐÞ¸Äij¸ö״̬ÀàµÄÐÐΪҲÐèÐ޸ĶÔÓ¦ÀàµÄÔ´´úÂë¡£

8.5Çé¾°

¶ÔÏóµÄÐÐΪÒÀÀµÓÚËüµÄ״̬£¨ÊôÐÔ£©²¢ÇÒ¿ÉÒÔ¸ù¾ÝËüµÄ״̬¸Ä±ä¶ø¸Ä±äËüµÄÏà¹ØÐÐΪ¡£

´úÂëÖаüº¬´óÁ¿Óë¶ÔÏó״̬ÓйصÄÌõ¼þÓï¾ä£¬ÕâЩÌõ¼þÓï¾äµÄ³öÏÖ£¬»áµ¼Ö´úÂëµÄ¿Éά»¤ÐÔºÍÁé»îÐÔ±ä²î£¬²»ÄÜ·½±ãµØÔö¼ÓºÍɾ³ý״̬£¬Ê¹¿Í»§ÀàÓëÀà¿âÖ®¼äµÄñîºÏÔöÇ¿¡£ÔÚÕâЩÌõ¼þÓï¾äÖаüº¬Á˶ÔÏóµÄÐÐΪ£¬¶øÇÒÕâЩÌõ¼þ¶ÔÓ¦ÓÚ¶ÔÏóµÄ¸÷ÖÖ״̬¡£

9.²ßÂÔģʽ(Strategy)

9.1¶¯»ú

Íê³ÉÒ»ÏîÈÎÎñ£¬ÍùÍù¿ÉÒÔÓжàÖÖ²»Í¬µÄ·½Ê½£¬Ã¿Ò»ÖÖ·½Ê½³ÆÎªÒ»¸ö²ßÂÔ£¬ÎÒÃÇ¿ÉÒÔ¸ù¾Ý»·¾³»òÕßÌõ¼þµÄ²»Í¬Ñ¡Ôñ²»Í¬µÄ²ßÂÔÀ´Íê³É¸ÃÏîÈÎÎñ¡£

9.2Ààͼ

Context: »·¾³Àà

Strategy: ³éÏó²ßÂÔÀà

ConcreteStrategy: ¾ßÌå²ßÂÔÀà

9.3Óŵã

²ßÂÔģʽÌṩÁ˶ԡ°¿ª±ÕÔ­Ôò¡±µÄÍêÃÀÖ§³Ö£¬Óû§¿ÉÒÔÔÚ²»ÐÞ¸ÄÔ­ÓÐϵͳµÄ»ù´¡ÉÏÑ¡ÔñËã·¨»òÐÐΪ£¬Ò²¿ÉÒÔÁé»îµØÔö¼ÓеÄËã·¨»òÐÐΪ¡£

²ßÂÔģʽÌṩÁ˹ÜÀíÏà¹ØµÄËã·¨×åµÄ°ì·¨¡£

²ßÂÔģʽÌṩÁË¿ÉÒÔÌæ»»¼Ì³Ð¹ØÏµµÄ°ì·¨¡£

ʹÓòßÂÔģʽ¿ÉÒÔ±ÜÃâʹÓöàÖØÌõ¼þ×ªÒÆÓï¾ä¡£

9.4ȱµã

¿Í»§¶Ë±ØÐëÖªµÀËùÓеIJßÂÔÀ࣬²¢×ÔÐоö¶¨Ê¹ÓÃÄÄÒ»¸ö²ßÂÔÀà¡£

²ßÂÔģʽ½«Ôì³É²úÉúºÜ¶à²ßÂÔÀ࣬¿ÉÒÔͨ¹ýʹÓÃÏíԪģʽÔÚÒ»¶¨³Ì¶ÈÉϼõÉÙ¶ÔÏóµÄÊýÁ¿¡£

9.5Çé¾°

Èç¹ûÔÚÒ»¸öϵͳÀïÃæÓÐÐí¶àÀ࣬ËüÃÇÖ®¼äµÄÇø±ð½öÔÚÓÚËüÃǵÄÐÐΪ£¬ÄÇôʹÓòßÂÔģʽ¿ÉÒÔ¶¯Ì¬µØÈÃÒ»¸ö¶ÔÏóÔÚÐí¶àÐÐΪÖÐÑ¡ÔñÒ»ÖÖÐÐΪ¡£

Ò»¸öϵͳÐèÒª¶¯Ì¬µØÔÚ¼¸ÖÖËã·¨ÖÐÑ¡ÔñÒ»ÖÖ¡£

Èç¹ûÒ»¸ö¶ÔÏóÓкܶàµÄÐÐΪ£¬Èç¹û²»ÓÃÇ¡µ±µÄģʽ£¬ÕâЩÐÐΪ¾ÍÖ»ºÃʹÓöàÖØµÄÌõ¼þÑ¡ÔñÓï¾äÀ´ÊµÏÖ¡£

²»Ï£Íû¿Í»§¶ËÖªµÀ¸´Ôӵġ¢ÓëËã·¨Ïà¹ØµÄÊý¾Ý½á¹¹£¬ÔÚ¾ßÌå²ßÂÔÀàÖзâ×°Ëã·¨ºÍÏà¹ØµÄÊý¾Ý½á¹¹£¬Ìá¸ßËã·¨µÄ±£ÃÜÐÔÓ밲ȫÐÔ¡£

ÈçJava SEµÄÈÝÆ÷²¼¾Ö¹ÜÀí

10.Ä£°å·½·¨Ä£Ê½(Template Method)

10.1¶¯»ú

Ä£°å·½·¨Ä£Ê½ÊÇ»ùÓڼ̳еĴúÂ븴Óûù±¾¼¼Êõ£¬Ä£°å·½·¨Ä£Ê½µÄ½á¹¹ºÍÓ÷¨Ò²ÊÇÃæÏò¶ÔÏóÉè¼ÆµÄºËÐÄÖ®Ò»¡£ÔÚÄ£°å·½·¨Ä£Ê½ÖУ¬¿ÉÒÔ½«ÏàͬµÄ´úÂë·ÅÔÚ¸¸ÀàÖУ¬¶ø½«²»Í¬µÄ·½·¨ÊµÏÖ·ÅÔÚ²»Í¬µÄ×ÓÀàÖС£

10.2Ààͼ

AbstractClass: ³éÏóÀà

ConcreteClass: ¾ßÌå×ÓÀà

10.3Óŵã

Ä£°å·½·¨Ä£Ê½ÔÚÒ»¸öÀàÖÐÐÎʽ»¯µØ¶¨ÒåËã·¨£¬¶øÓÉËüµÄ×ÓÀàʵÏÖϸ½ÚµÄ´¦Àí¡£

Ä£°å·½·¨Ä£Ê½ÊÇÒ»ÖÖ´úÂ븴ÓõĻù±¾¼¼Êõ¡£

Ä£°å·½·¨Ä£Ê½µ¼ÖÂÒ»ÖÖ·´ÏòµÄ¿ØÖƽṹ£¬Í¨¹ýÒ»¸ö¸¸Ààµ÷ÓÃÆä×ÓÀàµÄ²Ù×÷£¬Í¨¹ý¶Ô×ÓÀàµÄÀ©Õ¹Ôö¼ÓеÄÐÐΪ£¬·ûºÏ¡°¿ª±ÕÔ­Ôò¡±¡£

10.4ȱµã

ÿ¸ö²»Í¬µÄʵÏÖ¶¼ÐèÒª¶¨ÒåÒ»¸ö×ÓÀ࣬Õâ»áµ¼ÖÂÀàµÄ¸öÊýÔö¼Ó£¬ÏµÍ³¸ü¼ÓÅÓ´ó£¬Éè¼ÆÒ²¸ü¼Ó³éÏ󣬵«ÊǸü¼Ó·ûºÏ¡°µ¥Ò»Ö°ÔðÔ­Ôò¡±£¬Ê¹µÃÀàµÄÄÚ¾ÛÐÔµÃÒÔÌá¸ß¡£

10.5Çé¾°

Ò»´ÎÐÔʵÏÖÒ»¸öËã·¨µÄ²»±äµÄ²¿·Ö£¬²¢½«¿É±äµÄÐÐΪÁô¸ø×ÓÀàÀ´ÊµÏÖ¡£

¸÷×ÓÀàÖй«¹²µÄÐÐΪӦ±»ÌáÈ¡³öÀ´²¢¼¯Öе½Ò»¸ö¹«¹²¸¸ÀàÖÐÒÔ±ÜÃâ´úÂëÖØ¸´¡£

¶ÔһЩ¸´ÔÓµÄËã·¨½øÐзָ½«ÆäËã·¨Öй̶¨²»±äµÄ²¿·ÖÉè¼ÆÎªÄ£°å·½·¨ºÍ¸¸Àà¾ßÌå·½·¨£¬¶øÒ»Ð©¿ÉÒԸıäµÄϸ½ÚÓÉÆä×ÓÀàÀ´ÊµÏÖ¡£

¿ØÖÆ×ÓÀàµÄÀ©Õ¹¡£

11.·ÃÎÊÕßģʽ(Visitor)

11.1¶¯»ú

·ÃÎÊÕßģʽµÄÄ¿µÄÊÇ·âװһЩʩ¼ÓÓÚijÖÖÊý¾Ý½á¹¹ÔªËØÖ®ÉϵIJÙ×÷£¬Ò»µ©ÕâЩ²Ù×÷ÐèÒªÐ޸ĵϰ£¬½ÓÊÜÕâ¸ö²Ù×÷µÄÊý¾Ý½á¹¹¿ÉÒÔ±£³Ö²»±ä¡£Îª²»Í¬ÀàÐ͵ÄÔªËØÌṩ¶àÖÖ·ÃÎʲÙ×÷·½Ê½£¬ÇÒ¿ÉÒÔÔÚ²»ÐÞ¸ÄÔ­ÓÐϵͳµÄÇé¿öÏÂÔö¼ÓеIJÙ×÷·½Ê½£¬Õâ¾ÍÊÇ·ÃÎÊÕßģʽµÄģʽ¶¯»ú¡£

11.2Ààͼ

11.3Óŵã

ʹµÃÔö¼ÓеķÃÎʲÙ×÷±äµÃºÜÈÝÒס£

½«ÓйØÔªËضÔÏóµÄ·ÃÎÊÐÐΪ¼¯Öе½Ò»¸ö·ÃÎÊÕß¶ÔÏóÖУ¬¶ø²»ÊÇ·ÖÉ¢µ½Ò»¸ö¸öµÄÔªËØÀàÖС£

¿ÉÒÔ¿ç¹ýÀàµÄµÈ¼¶½á¹¹·ÃÎÊÊôÓÚ²»Í¬µÄµÈ¼¶½á¹¹µÄÔªËØÀà¡£ÈÃÓû§Äܹ»ÔÚ²»ÐÞ¸ÄÏÖÓÐÀà²ã´Î½á¹¹µÄÇé¿öÏ£¬¶¨Òå¸ÃÀà²ã´Î½á¹¹µÄ²Ù×÷

11.4ȱµã

Ôö¼ÓеÄÔªËØÀàºÜÀ§ÄÑ¡£ÔÚ·ÃÎÊÕßģʽÖУ¬Ã¿Ôö¼ÓÒ»¸öеÄÔªËØÀà¶¼Òâζ×ÅÒªÔÚ³éÏó·ÃÎÊÕß½ÇÉ«ÖÐÔö¼ÓÒ»¸öеijéÏó²Ù×÷£¬²¢ÔÚÿһ¸ö¾ßÌå·ÃÎÊÕßÀàÖÐÔö¼ÓÏàÓ¦µÄ¾ßÌå²Ù×÷£¬Î¥±³ÁË¡°¿ª±ÕÔ­Ôò¡±µÄÒªÇó¡£

ÆÆ»µ·â×°¡£·ÃÎÊÕßģʽҪÇó·ÃÎÊÕß¶ÔÏó·ÃÎʲ¢µ÷ÓÃÿһ¸öÔªËØ¶ÔÏóµÄ²Ù×÷£¬ÕâÒâζ×ÅÔªËØ¶ÔÏóÓÐʱºò±ØÐ뱩¶һЩ×Ô¼ºµÄÄÚ²¿²Ù×÷ºÍÄÚ²¿×´Ì¬£¬·ñÔòÎÞ·¨¹©·ÃÎÊÕß·ÃÎÊ¡£

11.5Çé¾°

Ò»¸ö¶ÔÏó½á¹¹°üº¬ºÜ¶àÀàÐ͵ĶÔÏó£¬Ï£Íû¶ÔÕâЩ¶ÔÏóʵʩһЩÒÀÀµÆä¾ßÌåÀàÐ͵IJÙ×÷¡£ÔÚ·ÃÎÊÕßÖÐÕë¶ÔÿһÖÖ¾ßÌåµÄÀàÐͶ¼ÌṩÁËÒ»¸ö·ÃÎʲÙ×÷£¬²»Í¬ÀàÐ͵ĶÔÏó¿ÉÒÔÓв»Í¬µÄ·ÃÎʲÙ×÷¡£

ÐèÒª¶ÔÒ»¸ö¶ÔÏó½á¹¹ÖеĶÔÏó½øÐкܶ಻ͬµÄ²¢ÇÒ²»Ïà¹ØµÄ²Ù×÷£¬¶øÐèÒª±ÜÃâÈÃÕâЩ²Ù×÷¡°ÎÛȾ¡±ÕâЩ¶ÔÏóµÄÀ࣬Ҳ²»Ï£ÍûÔÚÔö¼ÓвÙ×÷ʱÐÞ¸ÄÕâЩÀà¡£·ÃÎÊÕßģʽʹµÃÎÒÃÇ¿ÉÒÔ½«Ïà¹ØµÄ·ÃÎʲÙ×÷¼¯ÖÐÆðÀ´¶¨ÒåÔÚ·ÃÎÊÕßÀàÖУ¬¶ÔÏó½á¹¹¿ÉÒÔ±»¶à¸ö²»Í¬µÄ·ÃÎÊÕßÀàËùʹÓ㬽«¶ÔÏó±¾ÉíÓë¶ÔÏóµÄ·ÃÎʲÙ×÷·ÖÀë¡£

¶ÔÏó½á¹¹ÖжÔÏó¶ÔÓ¦µÄÀàºÜÉٸı䣬µ«¾­³£ÐèÒªÔڴ˶ÔÏó½á¹¹É϶¨ÒåеIJÙ×÷¡£

 

 

   
2687 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
 
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ