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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
MVC¼Ü¹¹Ä£Ê½
 
×÷Õߣºeddle À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-02-03
  5810  次浏览      27
 

ÃæÏò¶ÔÏóµÄÉè¼ÆÄ£Ê½ÊǾ­ÑéµÄ×ܽᣬMVC˼ÏëÊÇÔ­ÏÈÓÃÓÚ¹¹½¨Óû§½çÃæµÄ¡£ÕâÆªÎÄÕÂÖ÷ÒªÂÛÊöÁËÈçºÎÔÚеÄWebÓ¦ÓÃÁìÓòÖÐʹÓÃÉè¼ÆÄ£Ê½ºÍMVC¼Ü¹¹¡£ÎÄÕÂÊ×ÏȽéÉÜÁËÉè¼ÆÄ£Ê½µÄ¸ÅÄîºÍÌØµã£¬ÒÔ¼°MVC¼Ü¹¹µÄÉè¼ÆË¼Ï룬²¢·ÖÎöÁËMVC¼Ü¹¹Öаüº¬µÄ¼¸ÖÖÖ÷ÒªµÄģʽ¡£È»ºó¸ù¾ÝWebÓ¦ÓÃϵͳµÄÌØµã£¬¾ÍÈçºÎÓ¦ÓÃģʽºÍMVC¼Ü¹¹Ìá³öÁËһЩÉè¼ÆË¼Â·¡£

1. ÒýÑÔ

1.1 Éè¼ÆÄ£Ê½

ÃæÏò¶ÔÏó¼¼ÊõµÄ³öÏÖºÍÓ¦Óôó´óÌá¸ßÁËÈí¼þµÄÖØÓÃÐÔºÍÈí¼þµÄÖÊÁ¿¡£ÃæÏò¶ÔÏóµÄ±à³ÌÒ²±ÈÒÔÍùµÄ¸÷ÖÖ±à³ÌģʽҪ¼òµ¥ºÍ¸ßЧ£¬µ«ÊÇÃæÏò¶ÔÏóµÄÉè¼Æ·½·¨Òª±ÈÒÔÍùµÄÉè¼Æ·½·¨Òª¸´ÔÓºÍÓм¼Çɵö࣬һ¸öÁ¼ºÃµÄÉè¼ÆÓ¦¸Ã¼È¾ßÓжÔÎÊÌâµÄÕë¶ÔÐÔ£¬Ò²³ä·Ö¿¼Âǵ½¶Ô½«À´ÎÊÌâºÍÐèÇóÓÐ×ã¹»µÄͨÓÃÐÔ¡£ÔÚ¹ýÈ¥µÄÊ®¼¸ÄêÖУ¬ÈËÃÇÔÚ¶ÔÃæÏò¶ÔÏó¼¼ÊõµÄÑо¿Ì½Ë÷ºÍʵ¼ÊÓ¦ÓÃÖÐÕë¶ÔijЩÎÊÌâ´´ÔìÁËһЩÁ¼ºÃµÄ½â¾ö·½°¸,¼´ËùνµÄÃæÏò¶ÔÏóµÄÉè¼ÆÄ£Ê½¡£ÃæÏò¶ÔÏó¼¼ÊõµÄÄ¿µÄÖ®Ò»¾ÍÊÇÌá¸ßÈí¼þµÄÖØÓÃÐÔ£¬¶ø¶ÔÉè¼ÆÄ£Ê½¡¢Éè¼Æ·½°¸µÄÖØÓÃÔò´Ó¸üÉîµÄ²ã´ÎÉÏÌåÏÖÁËÖØÓõÄÒâÒåºÍ±¾ÖÊ¡£

ÈËÃǶÔÉè¼ÆÄ£Ê½ÓкܶඨÒ壬ÆäÖб»ÒýÓõÄ×î¶àÊÇChristopher AlexanderµÄÉè¼ÆÄ£Ê½µÄ¶¨Ò壺ÿһ¸öÉè¼ÆÄ£Ê½ÊÇÒ»¸öÈý·½µÄ¹æÔò£¬Ëü±í´ïÁËÒ»¸öÉÏÏÂÎÄ»·¾³£¨Context£©,Ò»¸öÎÊÌâºÍÒ»¸ö½â¾ö·½°¸¡£Éè¼ÆÄ£Ê½Ò»°ãÓÐÈçϼ¸¸ö»ù±¾ÒªËØ£ºÄ£Ê½Ãû³Æ£¬ÎÊÌ⣬ĿµÄ£¬½â¾ö·½°¸£¬Ð§¹û£¬ÑùÀý´úÂëºÍÏà¹ØÉè¼ÆÄ£Ê½¡£

Éè¼ÆÄ£Ê½µÄ·ÖÀàÓкü¸ÖÖ£¬¿ÉÒÔ¸ù¾ÝÆäÄ¿µÄ·ÖΪ´´½¨ÐÍ(Creational)£¬½á¹¹ÐÍ(Structural)ºÍÐÐΪÐÍ(Behavioral)ÈýÖÖ¡£´´½¨ÐÍģʽÖ÷ÒªÊÇÓÃÀ´´´½¨¶ÔÏ󣬽ṹÐÍģʽÖ÷ÒªÊÇ´¦ÀíÀà»ò¶ÔÏóµÄ×éºÏ£¬ÐÐΪÐÍģʽÔòÖ÷ÒªÓÃÀ´ÃèÊö¶ÔÀà»ò¶ÔÏóÔõÑù½»»¥ºÍÔõÑù·ÖÅäÖ°Ôð¡£Ò²¿ÉÒÔ¸ù¾Ý·¶Î§½«Éè¼ÆÄ£Ê½·ÖΪÀàģʽºÍ¶ÔÏóģʽ£¬Ààģʽ´¦ÀíÀàºÍ×ÓÀàÖ®¼äµÄ¹ØÏµ£¬ÕâЩ¹ØÏµÍ¨¹ý¼Ì³Ð½¨Á¢£¬ÔÚ±àÒëʱ¿Ì¾Í±»È·¶¨ÏÂÀ´£¬ÊÇÊôÓÚ¾²Ì¬µÄ¡£¶ÔÏóģʽÊÇ´¦Àí¶ÔÏó¼äµÄ¹ØÏµ£¬ÕâЩ¹ØÏµÔÚÔËÐÐʱ¿Ì±ä»¯£¬¸ü¾ß¶¯Ì¬ÐÔ¡£

ģʽµÄÌØµã£ºÊÇͨ¹ý¾­Ñé»ñÈ¡µÄ£¬ÒÔijÖֽṹ»¯µÄ¸ñʽÊéдÏÂÀ´£¬±ÜÃâÁËÓöµ½ÏàͬµÄÎÊÌâÖØÍ·Éè¼Æ£¬´æÔÚÓÚ²»Í¬µÄ³éÏó²ã£¬ÔÚ²»¶ÏÍêÉÆµÄ£¬ÊÇ¿ÉÖØÓõÄÈ˹¤²úÎʹÉè¼ÆºÍ×îºÃµÄÁ·Ï°½»»¥£¬ÒÔ±»×éºÏÆðÀ´½â¾ö¸ü´óµÄÎÊÌâ¡£

1.2 MVC¼Ü¹¹

MVC×î³õÊÇÔÚSmalltalk-80Öб»ÓÃÀ´¹¹½¨Óû§½çÃæµÄ¡£M´ú±íÄ£ÐÍModel, V´ú±íÊÓͼ View£¬ C´ú±í ¿ØÖÆÆ÷Controller¡£

MVCµÄÄ¿µÄÊÇÔö¼Ó´úÂëµÄÖØÓÃÂÊ£¬¼õÉÙÊý¾Ý±í´ï£¬Êý¾ÝÃèÊöºÍÓ¦ÓòÙ×÷µÄñîºÏ¶È¡£ ͬʱҲʹµÃÈí¼þ¿Éά»¤ÐÔ£¬¿ÉÐÞ¸´ÐÔ£¬¿ÉÀ©Õ¹ÐÔ£¬Áé»îÐÔÒÔ¼°·â×°ÐÔ´ó´óÌá¸ß¡£

µ¥Óû§µÄÓ¦ÓÃͨ³£ÊÇÒÔʼþÇý¶¯µÄÓû§½çÃæÎª×éÖ¯½á¹¹µÄ¡£¿ª·¢ÈËÔ±ÓÃÒ»¸ö½çÃæ¹¤¾ß»­ÁËÒ»¸öÓû§½Ó¿Ú½çÃæ£¬È»ºó±àд´úÂë¸ù¾ÝÓû§ÊäÈëÈ¥Ö´ÐÐÏàÓ¦µÄ¶¯×÷£¬Ðí¶à½»»¥Ê½µÄ¿ª·¢»·¾³¹ÄÀøÕâô×ö£¬ÒòΪËüÇ¿µ÷ÏÈÓнçÃæÈ»ºóÔÙÓй¦ÄÜ¡£Ò»Ð©Èí¼þÉè¼ÆÄ£Ê½²ßÂÔÊÇÕâÑùµÄ£¬È»ºó¾­³£½«¹Ì¶¨ºóµÄ´úÂëÈÚÈë×îºóµÄϵͳµ±ÖС£µ¼ÖµĽá¹û¾ÍÊÇ£¬³ÌÐò×éÖ¯Î§ÈÆÓû§½çÃæÔªËØºÍÓû§ÔÚÄÇЩ½çÃæÔªËØÉϵ͝×÷£¬Êý¾ÝµÄ´æ´¢£¬Ó¦ÓõŦÄÜÒÔ¼°ÓÃÀ´ÏÔʾµÄ´úÂë¶¼ÔÓÂÒÎÞÕµIJøÈÆÔÚÒ»Æð¡£ÔÚµ¥Óû§µÄϵͳÀï´úÂë½á¹¹ÊÇ¿ÉÒÔÕâÑùµÄ£¬ÒòΪϵͳÐèÇó²»»áÆµ·±±ä»¯¡£µ«ÊǶÔÒ»¸ö´óµÄϵͳÈç´óÐÍWebϵͳ£¬»òµç×ÓÉÌÎñϵͳÀ´Ëµ¾Í²»Ì«ÊÊÓÃÁË¡£

ͨ¹ý°ÑÊý¾Ýģʽ´Ó¸÷ÖÖ¿ÉÒÔ±»´æÈ¡ºÍ¿ØÖƵÄÊý¾ÝÖзÖÀë³öÀ´¿ÉÒÔ¸ÄÉÆ·Ö²¼Ê½ÏµÍ³µÄÉè¼Æ¡£MVCÉè¼ÆÄ£Ê½ÓÉÈý²¿·Ö×é³É¡£Ä£ÐÍÊÇÓ¦ÓöÔÏó£¬Ã»ÓÐÓû§½çÃæ¡£ÊÓͼ±íʾËüÔÚÆÁÄ»ÉϵÄÏÔʾ£¬´ú±íÁ÷ÏòÓû§µÄÊý¾Ý¡£¿ØÖÆÆ÷¶¨ÒåÓû§½çÃæ¶ÔÓû§ÊäÈëµÄÏìÓ¦·½Ê½£¬¸ºÔð°ÑÓû§µÄ¶¯×÷ת³ÉÕë¶ÔModelµÄ²Ù×÷¡£Model ͨ¹ý¸üÐÂViewµÄÊý¾ÝÀ´·´Ó³Êý¾ÝµÄ±ä»¯¡£

ÈýÕß¹ØÏµÈçͼ£º

¶ÔMVC¹ØÏµÍ¼µÄÀí½â

ͼ2 MVCµÄ·Ö¹¤ÓëЭ×÷

2. MVCÖеÄÉè¼ÆÄ£Ê½

Ò»¸öÒÔMVCΪ¼Ü¹¹µÄϵͳ°üº¬Á˺ܶàµÄÉè¼ÆÄ£Ê½£¬µ«ÊÇÓëMVC×îΪÃÜÇÐÏà¹ØµÄÊÇÏÂÃæÈýÖÖģʽ£ºObserver, CompositeºÍStrategy¡£

2.1 Observerģʽ

MVCͨ¹ýʹÓö¨¹º/֪ͨµÄ·½Ê½·ÖÀëÁËModelºÍView¡£ViewÒª±£Ö¤×Ô¼ºÏÔʾÄÜÕýÈ·µØ·´Ó³³öModelµÄÄÚÈݺÍ״̬¡£Ò»µ©ModelµÄÄÚÈÝ·¢Éú±ä»¯£¬±ØÐëÓÐÒ»¸ö»úÖÆÀ´Ê¹µÃModelÄܹ»Í¨ÖªÏà¹ØµÄView£¬Ê¹µÃÏà¹ØµÄView¿ÉÒÔÔÚÊʵ±µÄʱ»úË¢ÐÂÊý¾Ý¡£Õâ¸öÉè¼Æ»¹¿ÉÒÔ½â¾ö¸üÒ»°ãµÄÎÊÌ⣬½«¶ÔÏó·ÖÀ룬ʹµÃÒ»¸ö¶ÔÏóµÄ¸Ä±äÄܹ»Ó°Ïìµ½ÁíһЩ¶ÔÏ󣬶øÕâ¸ö¶ÔÏó²¢²»ÖªµÀÄÇЩ±»Ó°ÏìµÄ¶ÔÏóµÄϸ½Ú¡£Õâ¾ÍÊDZ»ÃèÊöΪObserverµÄÉè¼ÆÄ£Ê½¡£

ģʽÀàÐÍ£ºObserverģʽÊǶÔÏóÐÍģʽ£¬Í¬Ê±ËüÒ²ÊÇÐÐΪÐÍģʽ¡£

ģʽĿµÄ£º¶¨Òå¶ÔÏó¼äµÄÒ»¶Ô¶àµÄÒÀÀµ¹ØÏµ£¬µ±Ò»¸ö¶ÔÏóµÄÖµ»ò״̬·¢Éú¸Ä±äʱ£¬ËùÓÐÓëËüÓÐÒÀÀµ¹ØÏµµÄ¶ÔÏ󶼵õ½Í¨Öª²¢×Ô¶¯¸üС£Ä³Ò»Êý¾Ý¿ÉÄÜÓжàÖÖÏÔʾ·½Ê½£¬²¢ÇÒ¿ÉÄÜͬʱÒÔ²»Í¬µÄ·½Ê½ÏÔʾ£¨Èçͼ2£©¡£µ±Í¨¹ýijһÖÖ·½Ê½¸Ä±äÁËÊý¾Ý£¬ÄÇôÆäËûµÄÏÔʾ¶¼Ó¦¸ÃÄÜÁ¢¼´ÖªµÀÊý¾ÝµÄ¸Ä±äºÍ×öÏàÓ¦µÄµ÷Õû¡£

ģʽ½á¹¹£º

ͼ 3. ObserverģʽµÄ½á¹¹Í¼

Ч¹û£º

1. ³éÏóñîºÏ¡£Ä¿±ê¶ÔÏóÖ»ÖªµÀËüÓÐһЩ¹Û²ìÕߣ¬Ã¿¸ö¹Û²ìÕß¶¼·ûºÏ³éÏóµÄObserverÀàµÄ¼òµ¥½Ó¿Ú£¬²¢²»ÖªµÀËüÃǾßÌåÊôÓÚÄĸöÀà¡£ÕâÑùʹµÃÄ¿±êºÍ¹Û²ìÕßÖ®¼äµÄñîºÏ×îСÇÒ³éÏó¡£

2. Ö§³Ö¹ã²¥Í¨ÐÅ¡£Ä¿±ê·¢ËÍ֪ͨ²»ÓÃÖ¸¶¨¹Û²ìÕߣ¬ÈçºÎ´¦Àí֪ͨÓɹ۲ìÕß¾ö¶¨¡£

3. ¿ÉÄܵÄÒâÍâ¸üС£Òª´¦ÀíºÃ¸üÐÂÂß¼­£¬±ÜÃâ´íÎó¸üС£

2.2 Compositeģʽ

MVCµÄÒ»¸öÖØÒªÌØÕ÷¾ÍÊÇView¿ÉÒÔǶÌס£Ç¶Ì×µÄ×éºÏÊÓͼ¿ÉÓÃÓÚÈκÎÊÓͼ¿ÉÓõĵط½£¬¶øÇÒ¿ÉÒÔ¹ÜÀíǶÌ×ÊÓͼ¡£ÕâÖÖ˼Ïë·´Ó³³ö½«×éºÏµÄÊÓͼÓëÆä×é¼þƽµÈ¶Ô´ýµÄÉè¼Æ¡£ÕâÖÖÉè¼ÆË¼ÏëÔÚÃæÏò¶ÔÏóÁìÓòÄÚ±»ÃèÊö³ÉΪCompositeµÄÉè¼ÆÄ£Ê½¡£

ģʽÀàÐÍ£ºCompositeģʽÊǶÔÏóÐÍģʽ£¬Í¬Ê±ËüÒ²ÊǽṹÐÍģʽ¡£

ģʽĿµÄ£º½«¶ÔÏó×éºÏ³ÉÊ÷ÐνṹÒÔ±íʾ"²¿·Ö-ÕûÌå"²ã´Î½á¹¹¡£Compositeʹ×éºÏ¶ÔÏóµÄʹÓú͵¥¸ö¶ÔÏóµÄʹÓþßÓÐÒ»ÖÂÐÔ¡£

ģʽ½á¹¹£º

ͼ4. CompositeģʽµÄ½á¹¹Í¼

Ч¹û£º

1. ¶¨ÒåÁ˰üº¬¼òµ¥¶ÔÏóºÍ×éºÏ¶ÔÏóµÄÀà²ã´Î½á¹¹¡£¼òµ¥¶ÔÏó¿ÉÒÔ±»×éºÏµ½¸´ÔÓ¶ÔÏóÖУ¬¶ø×éºÏµÄ¶ÔÏó¿ÉÒÔÔÙ±»×éºÏ¡£ÕâÑù¿Í»§¶Ë´úÂëÖÐÓõ½¼òµ¥¶ÔÏóµÄµØ·½¶¼¿ÉÒÔʹÓÃ×éºÏ¶ÔÏó¡£

2. ¼ò»¯¿Í»§¶Ë´úÂë¡£¿Í»§¶Ë²»ÓÃÖªµÀij¶ÔÏóÊǼòµ¥¶ÔÏó»¹ÊÇ×éºÏ¶ÔÏ󣬿ÉÒÔÒÔÒ»Öµķ½Ê½Ê¹ÓÃÕâЩ¶ÔÏó¡£

3. ¸üÈÝÒ×Ôö¼ÓÐÂÀàÐ͵Ä×é¼þ¡£ÐµÄ×é¼þ¿ÉÒÔ·½±ãµØ¼ÓÈëÒÑÓÐ×éºÏ¶ÔÏóÖв»Óøıä¿Í»§¶Ë´úÂë¡£

2.3 Strategyģʽ

MVCµÄÁíÒ»ÖØÒªÌØÕ÷ÊÇ¿ÉÒÔÔÚ²»¸Ä±äViewµÄÇé¿öϸıäView¶ÔÓû§ÊäÈëµÄÏìÓ¦·½Ê½¡£Õâ¶ÔÒ»¸ö¾­³£ÐèÒª±ä¸üÏìÓ¦Âß¼­µÄϵͳÀ´ËµÊǷdz£ÖØÒªµÄ¡£MVC°ÑÏìÓ¦Âß¼­·â×°ÔÚControllerÖС£ÓÐÒ»¸öControllerµÄÀà²ã´Î½á¹¹£¬¿ÉÒÔ·½±ãµØ¶ÔÔ­ÓÐController×öÊʵ±¸Ä±ä£¬´´½¨ÐµÄController¡£ViewʹÓÃController×ÓÀàµÄʵÀýÀ´ÊµÏÖÒ»¸öÌØ¶¨µÄÏìÓ¦²ßÂÔ¡£ÒªÊµÏÖ²»Í¬µÄÏìÓ¦²ßÂÔ£¬Ö»ÒªÓò»Í¬ÖÖÀàµÄControllerʵÀýÌæ»»¼´¿É¡£»¹¿ÉÒÔÔÚÔËÐÐʱ¿Ìͨ¹ý¸Ä±äViewµÄControllerÀ´¸Ä±äView¶ÔÓû§ÊäÈëµÄÏìÓ¦²ßÂÔ¡£ÕâÖÖView-ControllerµÄ¹ØÏµÊDZ»ÃèÊöΪStrategyµÄÉè¼ÆÄ£Ê½µÄÒ»¸öÀý×Ó¡£
ģʽÀàÐÍ£ºStrategyģʽÊǶÔÏóÐÍģʽ£¬Í¬Ê±ËüÒ²ÊÇÐÐΪÐÍģʽ¡£

ģʽĿµÄ£º¶¨ÒåһϵÁеÄËã·¨£¬²¢ÇÒ°ÑËüÃÇ·â×°ÆðÀ´£¬Ê¹ËüÃÇ¿ÉÒÔ»¥ÏàÌæ»»£¬Ê¹µÃËã·¨¿ÉÒÔ¶ÀÁ¢ÓÚʹÓÃËüµÄ¿Í»§¶Ë¶ø±ä»¯¡£

ģʽ½á¹¹£º

ͼ5. StrategyģʽµÄ½á¹¹Í¼

Ч¹û£º

1. StrategyÀà²ã´ÎΪContext¶¨ÒåÁË¿ÉÖØÓõÄÏà¹ØËã·¨»òÐÐΪ¡£

2. Ìæ´ú¼Ì³ÐµÄ·½·¨¡£Èç¹ûÖ±½Ó¼Ì³ÐContext£¬¸øÒÔ²»Í¬µÄÐÐΪ£¬»á½«ÐÐΪ¼Óµ½ContextÖУ¬´Ó¶ø½«Ëã·¨µÄʵÏÖÓëContext»ìºÏÆðÀ´£¬Ê¹ContextÄÑÒÔÀí½â£¬Î¬»¤ºÍÀ©Õ¹£¬¶øÇÒ²»Äܶ¯Ì¬µØ¸Ä±äËã·¨¡£½«Ëã·¨·â×°ÔÚ¶ÀÁ¢µÄStrategyÀ࣬¿ÉÒÔʹµÃËã·¨¶ÀÁ¢ÓÚContext¸Ä±ä£¬ÈÝÒ×Çл»À©Õ¹¡£

3. ¿ÉÒÔÌṩÏàͬÐÐΪµÄ²»Í¬ÊµÏÖ¡£

4. ¿Í»§¶Ë±ØÐëÁ˽âStrategyÖ®¼äÓкβ»Í¬¡£

5. ContextºÍStrategyÖ®¼äµÄͨÐÅ¿ªÏú¡£

6. Ôö¼ÓÁ˶ÔÏóµÄÊýÄ¿¡£

3. MVCÔÚ WebϵͳÖеÄÓ¦ÓÃ

ÏÖÔÚµÄһЩ»ùÓÚWebµÄ·Ö²¼Ê½ÏµÍ³ÈçB2Bµç×ÓÉÌÎñϵͳ£¬¾ÍÊʺϲÉÓÃMVC¼Ü¹¹¡£

ͨ¹ý·ÖÎö£¬´Ó¸ß²ã´ÎµÄ½Ç¶È¿ÉÒÔ½«Ò»¸öÓ¦ÓõĶÔÏó·ÖΪÈýÀà¡£Ò»Àà¾ÍÊǸºÔðÏÔʾµÄ¶ÔÏó£¬Ò»Àà¶ÔÏó°üº¬ÉÌÒµ¹æÔòºÍÊý¾Ý£¬»¹ÓÐÒ»Àà¾ÍÊǽÓÊÕÇëÇ󣬿ØÖÆÉÌÒµ¶ÔÏóÈ¥Íê³ÉÇëÇó¡£ÕâЩӦÓõÄÏÔʾÊǾ­³£ÐèÒª±ä»»µÄ£¬ÈçÍøÒ³µÄ·ç¸ñ£¬É«µ÷£¬»¹ÓÐÐèÒªÏÔʾµÄÄÚÈÝ£¬ÄÚÈݵÄÏÔʾ·½Ê½µÈ¡£¶øÉÌÒµ¹æÔòºÍÊý¾ÝÊÇÏà¶ÔÒªÎȶ¨µÄ¡£Òò´Ë£¬±íʾÏÔʾµÄ¶ÔÏóView¾­³£ÐèÒª±ä»¯µÄ£¬±íʾÉÌÒµ¹æÔòºÍÊý¾ÝµÄ¶ÔÏóModelÒªÏà¶ÔÎȶ¨£¬¶ø±íʾ¿ØÖƵÄControllerÔò×îÎȶ¨¡£

ͨ³£µ±ÏµÍ³·¢²¼ºó£¬View¶ÔÏóÊÇÓÉÃÀ¹¤£¬HTML/JSPÉè¼ÆÈËÔ±»òÕßϵͳ¹ÜÀíÔ±À´¸ºÔð¹ÜÀíµÄ¡£Controller¶ÔÏóÓÉÓ¦Óÿª·¢ÈËÔ±¿ª·¢ÊµÊ©£¬ÉÌÒµ¹æÔò¶ÔÏóºÍÉÌÒµÊý¾Ý¶ÔÏóÔòÓÉ¿ª·¢ÈËÔ±£¬ÁìÓòר¼ÒºÍÊý¾Ý¿â¹ÜÀíÔ±¹²Í¬Íê³ÉµÄ¡£ÏÔʾÂß¼­ÔÚWeb²ã»ò¿Í»§¶Ë¿ØÖÆ£¬¿ÉÒÔÊÇServlet »òJSP£¬¶¯Ì¬µØÉú³ÉHtml¡£Ò»°ãÀ´Ëµ²ÉÓÃJSPÒª±È²ÉÓÃServletÒªºÃ¡£JSP¸üºÃµØ½«´úÂëÓëHtml²¿·Ö·Ö¿ª£¬ÓÐÀûÓÚÒ³ÃæÉè¼ÆÈËÔ±ºÍ´úÂ뿪·¢ÈËÔ±µÄ·ÖÀ룬Ìá¸ßЧÂÊ¡£Í¬Ê±JSP¿ÉÒÔÍê³ÉËùÓÐServletÍê³ÉµÄ¹¦ÄÜ£¬Êµ¼ÊÉÏJSP×îÖÕҲת»»³ÉÒ»¸öServlet¡£Óë¿ØÖÆÓйصĶÔÏó´æÔÚÓÚϵͳµÄÿһ¸ö²ã´Î£¬Ð­µ÷¿ç²ã¶¯×÷¡£°üº¬ÉÌÒµ¹æÔòºÍÊý¾ÝµÄ¶ÔÏó´æÔÚÓÚEJB²ã£¨ÒÔEJBΪÖÐÐĵÄģʽ£©»òWeb²ã£¨ÒÔWebΪÖÐÐĵÄģʽ£©¡£

3.1 ViewÔÚWebϵͳÖеÄÓ¦ÓÃ

View´ú±íϵͳµÄÏÔʾ£¬ËüÍêÈ«´æÔÚÓÚWeb²ã¡£Ò»°ãÓÉJSP, Java BeanºÍCustom Tag×é³É¡£JSP¿ÉÒÔ¶¯Ì¬Éú³ÉÍøÒ³ÄÚÈÝ£¬Custom Tag ¸ü·½±ãÁËʹÓÃJava Bean£¬¶øÇÒËü¿ÉÒÔ·â×°ÏÔʾÂß¼­£¬¸üÓÐÀûÓÚÓÚÄ£¿é»¯ºÍÖØÓá£Ò»Ð©Éè¼ÆÁ¼ºÃµÄCustom Tag¿ÉÒÔÔÚ¶à¸öJSPÉõÖÁ¿ÉÒÔÔÚ²»Í¬µÄϵͳÀïÖØ¸´Ê¹Óá£Java BeanÓÃÀ´¿ØÖÆJSPºÍModel¶ÔÏó¡£JSPͨ¹ýJava Bean À´¶ÁÈ¡Model¶ÔÏóÖеÄÊý¾Ý£¬ModelºÍController¶ÔÏóÔò¸ºÔð¶ÔJava BeanµÄÊý¾Ý¸üС£Ò»°ãÀ´Ëµ£¬¿ÉÒÔÏÈÒªÉè¼Æ³öËùÓпÉÄܳöÏֵįÁÄ»£¬¼´Óû§Ê¹ÓÃϵͳʱ¿ÉÒÔ¿´µ½µÄËùÓÐÄÚÈÝ¡£È»ºó¸ù¾ÝÕâЩÄÚÈÝ£¬ÕÒ³ö¹«¹²²¿·Ö£¬¾²Ì¬²¿·ÖºÍ¶¯Ì¬±ä»¯²¿·Ö¡£¿ÉÒÔ¿¼ÂÇʹÓÃÄ£°å·½·¨£¬°Ñ¹«ÓõÄÄÚÈݵ¥¶ÀÉú³ÉJSP£¬ÐèÒª±ä»¯µÄÒ²¸÷×ÔÉú³ÉHtml»òJSP, ÓÉÒ»¸öÄ£°åJSP, °ÑÕâЩ²»Í¬²¿·Ö¶¯Ì¬µØÒýÈ루include·½·¨£©¡£»¹ÓÐÒ»¸öÒª¿¼ÂǵÄÎÊÌâ¾ÍÊÇÆÁÄ»µÄÑ¡ÔñÎÊÌ⣬µ±´¦ÀíÍêÓû§ÇëÇó£¬Ä£°å±»×Ô¶¯µ÷ÓÃÀ´ÏÔʾ£¬Õâ¸öÏÔʾһ¶¨ÒªÖªµÀÓû§¹ØÐĵįÁÄ»ÊÇÓÐÄÄЩ²¿·Ö×é³É¡£ËùÒÔ¿ÉÒÔ¿¼ÂǰÑËùÓÐÆÁÄ»µÄ¶¨Òå·ÅÔÚÒ»¸ö¼¯ÖеÄÎļþÀÈçÒ»¸öjavaÎļþ»òÎı¾Îļþ¡£ÓÉÓÚ¿¼Âǵ½ÆÁÄ»¶¨ÒåÎļþ½«À´µÄ±ä¸ü¿ÉÄÜÐÔ£¬×îºÃʹÓÃÎı¾ÎļþÈçÒ»¸öXMLÎļþ£¬ÕâÑù½«À´¸ü¸Ä²»ÓÃÖØÐ±àÒë¡£¿ÉÒÔ¸ù¾ÝÓû§ÊäÈëµÄURLºÍ²ÎÊý¿ÉÒÔÓ³É䵽ijһ¸ö½á¹ûÆÁÄ»£¬µ±È»ÓпÉÄÜ»¹Òª¸ù¾Ý¶¯×÷µÄÖ´Ðнá¹ûÑ¡Ôñ²»Í¬µÄ½á¹ûÆÁÄ»ÄÚÈÝ¡£ËùÒÔÐèÒªÒ»¸öÇëÇóÓë×ÊÔ´µÄÆ¥ÅäÎļþ£¨XML£©£¬Èç¹ûÒ»¸öURLÇëÇóÓм¸ÖÖ²»Í¬½á¹û£¬ÔòÒªÔÚ¸ÃÎļþÖÐÖ¸Ã÷ÊÇ·ñÐèÒªÁ÷¿ØÖÆ£¨Ò»ÖÖcontroller¶ÔÏó£©ÒÔ¼°²»Í¬Á÷ÏòµÄ¶ÔÓ¦ÆÁÄ»¡£

3.2 ModelÔÚWebϵͳÖеÄÓ¦ÓÃ

Model¶ÔÏó´ú±íÁËÉÌÒµ¹æÔòºÍÉÌÒµÊý¾Ý£¬´æÔÚÓÚEJB²ãºÍWeb²ã¡£ÔÚJ2EEµÄ¹æ·¶ÖУ¬ÏµÍ³ÓÐЩÊý¾ÝÐèÒª´æ´¢ÓÚÊý¾Ý¿âÖУ¬ÈçÓû§µÄÕ˺ÅÐÅÏ¢£¨account model£©£¬¹«Ë¾µÄÊý¾Ý(company model)µÈ£¬Ò²ÓÐһЩ²»ÐèÒª¼Ç¼ÔÚÊý¾Ý¿âÀïµÄ£¬ÈçijÓû§ä¯ÀÀµÄµ±Ç°²úƷĿ¼(catalog model)£¬ËûµÄ¹ºÎïÄÚÈÝ(shopping cart model)µÈ¡£ÕâЩmodelÊý¾Ý´æÔÚÓÚÄÄÒ»²ãÒª¸ù¾ÝËüÃǵÄÉúÃüÖÜÆÚºÍ·¶Î§À´¾ö¶¨¡£ÔÚWeb²ãÓÐHttpSessionºÍServletContext¼°Java Bean¶ÔÏóÀ´´æ´¢Êý¾Ý£¬ÔÚEJB²ãÔòÓÐEJBÀ´´æ´¢Êý¾ÝºÍÂß¼­¡£Web²ãµÄJava BeanµÄmodel¶ÔÏó´æ´¢ÁËEJB²ãmodel¶ÔÏóµÄÊý¾ÝµÄ¿½±´¡£ÒòΪEJB²ãÓкܶ಻ͬµÄmodel¶ÔÏó£¬ËùÒÔWeb²ã¿ÉÒÔͨ¹ýÒ»¸öModelManagerÀ´¿ØÖÆEJB²ãµÄ¸÷model¶ÔÏó£¬ÔÚModelMangerÖпÉÒÔ·âװʹÓúǫ́model¶ÔÏóµÄ·½·¨¡£

ÔÚEJB²ã°ÑËùÓеÄÊý¾ÝºÍ¹æÔò¶¼Ä£Ê½»¯ÎªEJBÒ²ÊDz»Ç¡µ±µÄ¡£Èç¿ÉÒÔ°Ñ´æÈ¡Êý¾Ý¿âµÄ¶ÔÏóģʽ»¯ÎªDAO¶ÔÏó¡£DAOÖпÉÒÔ·â×°Óë¾ßÌåÊý¾Ý¿âµÄ½»»¥Ï¸½Ú£¬Èç¿ÉÒÔ¶Áд²»Í¬µÄ±í£¬¶à¸öÊý¾Ý¿â£¬ÉõÖÁ¶àÖÖÊý¾Ý¿â¡£È綨µ¥µÄmodel¶ÔÏó¿ÉÒÔÊÇÒ»¸öOrderDAO, Ëü¿ÉÄÜҪͬʱ´¦ÀíOrder±í£¬OrderStatus±íºÍOrderItemLines±í¡£

»¹ÓпÉÒÔ¿¼ÂÇʹÓÃValue¶ÔÏó¡£Ò»¸öValue ¶ÔÏó¿ÉÒÔ·â×°Ô¶³Ì¶ÔÏó£¬ÒòΪÿһ¸ö¶ÁÔ¶³Ì¶ÔÏóµÄÊôÐÔ¶¼¿ÉÄÜÊÇÒ»¸öÔ¶³Ì¹ý³Ìµ÷Ó㬶¼»áºÄ·ÑÍøÂç×ÊÔ´¡£¿ÉÒÔÔÚEJBµÄÔ¶³Ì¶ÔÏóÖÐʹÓÃValue¶ÔÏó. ÔÚÔ¶³Ì¶ÔÏóÖÐÒ»´ÎÐԵõ½Value¶ÔÏóÀ´µÃµ½ËùÓÐÊôÐÔµÄÖµ¡£

3.3 ControllerÔÚWebϵͳÖеÄÓ¦ÓÃ

Controller¶ÔÏóЭµ÷ModelÓëView£¬°ÑÓû§ÇëÇó·­Òë³Éϵͳʶ±ðµÄʼþ¡£ÔÚWeb²ã£¬Ò»°ãÓÐÒ»¸öMainServlet(»òMain.jsp)£¬½ÓÊÕËùÓÐÇëÇó£¬Ëü¿ÉÒÔµ÷ÓÃÆÁÄ»Á÷¹ÜÀíÆ÷£¨ScreenFlowManger£©¾ö¶¨ÏÂÒ»¸öÆÁÄ»¡£Ò»°ã»¹ÓÐÒ»¸öÇëÇó´¦ÀíÆ÷RequestProcessor£¬°üº¬ËùÓÐÇëÇó¶¼ÐèÒª×öµÄ´¦ÀíÂß¼­£¬Èç°ÑÇëÇó·­Òë³Éϵͳʼþ£¨RequestToEvent£©¡£ÇëÇó´¦ÀíÆ÷ͨ³£»¹°üº¬Ò»¸ö´úÀí¶ÔÏóClientControlWebImpl£¬ËüÊÇEJB²ãµÄÂß¼­´¦ÀíµÄÔÚWeb²ãµÄ´úÀí¡£ÔÚEJB²ã£¬ÓÐÒ»¸öClientControllerÌṩWeb ²ã¶ÔEJB²ãµÄÖ»¶Á·ÃÎÊ¡£»¹ÓÐÒ»¸öStateMachineÓÃÀ´½¨Á¢ºÍɾ³ýejb£¬´¦ÀíWeb²ãËÍÀ´µÄʼþ¡£

Controller»¹ÓÐÒ»¸öÖØÒªµÄ¹¦ÄܾÍÊÇͬ²½ViewºÍModelµÄÊý¾Ý¡£ÔÚModelMangerÖаüº¬Ò»¸öModelUpdateManger£¬Ëü°Ñϵͳʼþת»»ÎªÒ»¸öModelµÄ¼¯ºÏ£¬¼´ËùÓÐÐèҪͬ²½µÄModel£¬È»ºó֪ͨListenersÈ¥×öͬ²½²Ù×÷¡£

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

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

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

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
Visitor Parttern
ÓÉ±í¼°À￴ģʽ
Éè¼ÆÄ£Ê½Ëæ±ÊϵÁÐ
ÉîÈëdz³öÉè¼ÆÄ£Ê½-½éÉÜ
.NETÖеÄÉè¼ÆÄ£Ê½
Ïà¹ØÅàѵ¿Î³Ì

J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Ó¦ÓÃģʽÉè¼ÆJavaÆóÒµ¼¶Ó¦ÓÃ
Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
J2EEÉè¼ÆÄ£Ê½Ö¸ÄÏ
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Éè¼ÆÄ£Ê½¼°ÆäCSharpʵÏÖ

ijµçÁ¦¹«Ë¾ Éè¼ÆÄ£Ê½Ô­Àí
À¶ÍØÆË Éè¼ÆÄ£Ê½Ô­Àí¼°Ó¦ÓÃ
ÎÀÐǵ¼º½ UML & OOAD
ÌÀɭ·͸Ñз¢ÖÐÐÄ UML& OOAD
Öдïµçͨ Éè¼ÆÄ£Ê½Ô­Àí
Î÷ÃÅ×Ó Ç¶ÈëʽÉè¼ÆÄ£Ê½
 
 
 
¡¡