Èý´úÄ¿: M-V-C:(Ä£ÐÍ£¬ÊÓͼ£¬¿ØÖÆÆ÷)
ÏÖÔÚÍøÉÏÓÐºÜ¶à¹ØÓÚmvcµÄ½éÉÜ£¬ÈÃÈ˾À½áµÄÊÇËûÃǸ÷²»Ïàͬ£¬¶øÇÒÓеĸù±¾¾Í˵µÄ²»¶Ô£¬ ¶ÔÓÚ¿ò¼ÜģʽÕâ¶«Î÷£¬Ã»ÓÐÒ»¸öÑϸñµÄ¹æ¶¨ËµÕâÑù¸ãÊÇ mvc ÄÇÑù¾Í²»ÊÇ¡£ ÉõÖÁÁ¬mvc±¾ÉíÒ²Óкܶà±äÖÖ£¬ÎÒÃÇÖ»Òª´Ó¸ùÔ´ÉÏÀí½âÕâ¸ö¶«Î÷¾ÍÐС£
ÎҾͲ»°Ç׿·ØÁË£¬ÔÛÃÇÖ»ÐèÒªÖªµÀËüÒѾ´æÔÚÁË 30¶àÄê¾ÍÐÐÁË¡£
ÎÒÃÇ˼¿¼Ò»Ï UI(ͼÐλ¯Óû§½çÃæ) µÄ±¾ÖÊ:
ΪʲôҪÓÐUI£¬ ÔÚ¼ÆËã»úÑÛÖÐ Ò»Çм´Êý¾Ý£¬ÆäʵҪÊÇÉîÍÚÕâ¸öÎÊÌ⣬Êý¾ÝÓë²Ù×÷Æäʵ¶¼ÊÇ 0 1 ×é³ÉµÄ»úÆ÷Â룬ֻ²»¹ý CPUÔËÐеÄʱºòÓÃÖ¸¶¨¼Ä´æÆ÷µÄÊý¾Ýµ±×öÖ¸Áî°ÕÁË£¬Ò²¾ÍÊÇ˵¾ö¶¨Ò»¸öÊý¾Ýµ½µ×ÊÇÊý¾Ý»¹ÊÇÖ¸Áî ֻȡ¾öÓÚËûËùÔڵļĴæÆ÷λÖá£(ºÃÁ˺ÃÁË ³¶Ô¶ÁË£¬Íù»ØÅÜ¡£¡£) Êý¾ÝµÄ²Ù×÷ÊdzéÏóµÄ£¬ÊÇרҵÈËÊ¿¸ÉµÄÊÂÇ飬 ¼ÆËã»úΪÁË×ß½øÇ§¼ÒÍò»§£¬ ±ØÐëÌṩһÖÖɵ¹ÏʽµÄ²Ù×÷·½Ê½£¬ÓÚÊÇUIµ®ÉúÁË¡£¡£¡£ ÓÃÒ»¾ä»°½âÊÍUI¾ÍÊÇ:
ËûÊÇÊý¾Ýµ½Í¼ÏñµÄÒ»ÖÖÓ³Éä³ÌÐò;
¸Õ²Å˵ÁËËüÊÇÒ»ÖÖÓ³Éä³ÌÐò£¬Óû§Í¨¹ý²Ù×÷ͼÏñÉϵİ´Å¥£¬À´´ïµ½²Ù×÷Êý¾ÝµÄÄ¿µÄ£¬Êý¾Ý±»Óû§¸Ä±äºó£¬¿Ï¶¨ÐèÒª´ÓÐÂÉú³ÉÓ³Éä¡£
ÇëÔÊÐíÎÒÏòÉÏÒ»ÕÅÀϵôÑÀµÄͼ:

˵˵ÕâÀïÃæ Modle View Controller ÊǸÉʲôµÄ:
1.
View: ·ÅÖÃÊÓͼÏà¹ØµÄ´úÂ룬ÔÔòÉÏÀïÃæ²»Ó¦¸ÃÓÐÈκÎÒµÎñÂß¼¡£
2.
Controller: ·ÅÖÃÊÓͼÓëÄ£ÐÍÖ®¼äµÄÓ³É䣬ÔÔòÉÏÕâÀïÓ¦¸ÃºÜ±¡£¬ËûÖ»·ÅһЩʼþ°ó¶¨Ïà¹ØµÄ´úÂë(router)£¬µ«²¢²»ÊµÏÖÕæÕýµÄ¹¦ÄÜ£¬ËûÖ»ÊÇÒ»¸öÇÅÁº¡£
3.
Modle: ÕâÀïµÄmodle²»ÊÇ˵ ʵÌåÀ࣬ ËûÊÇÖ÷ҪʵÏÖÂß¼µÄµØ·½¡£
ÄÇ»¹ÊÇÉÏÃæ ÂòË®¹ûµÄÀý×Ó£¬ÄÇôÔÚMVCϸÃÈçºÎÉè¼ÆÄØ:
| ¸ÅÄî |
½âÊÍ |
| view²ã |
·ÅÖýçÃæ´úÂ룬ÒÔ¼°Ò»Ð©Ë¢ÐÂÂß¼ ÈçÊý¾ÝÖÐµÄ 0 1 ת³É ÄÐ Å® |
| controller²ã |
·ÅÖÃһЩ°ó¶¨Âß¼¡£Íê³Érouter£¬²»ÊµÏÖº¯ÊýÌå¡£ |
| model²ã |
½ÓÊÕviewµÄ×¢²á£¬µ±×ÔÉíÊý¾Ý±ä»¯Ê±£¬Ö´ÐÐviewµÄˢк¯Êý¡£ ÒµÎñÂß¼¶¼ÔÚÕâÀï |
ËûÊÇÕâÑùÒ»¸öÁ÷³Ì:
1.´´½¨ÏÔʾƻ¹ûÊýÁ¿µÄ¿Ø¼þ¡£
2.½«ÉÏÃæ¿Ø¼þ×¢²áµ½modelÖС£(ÉèÖùØÁªµÄÊý¾Ý£¬–Æ»¹ûÊý±äÁ¿)
3.ÐÞ¸ÄmodelÖÐ Æ»¹ûÊý±äÁ¿ ¡£
4.ÓÉÓÚÆ»¹ûÊý±äÁ¿±»Ð޸쬴¥·¢ËùÓаó¶¨ÔÚÉÏÃæµÄ¿Ø¼þ(view)´ÓÐÂÖ´ÐÐˢк¯Êý¡£
5.ÏÔʾƻ¹ûÊýÁ¿µÄ¿Ø¼þ±»¸üС£
ÕâÑù±ã½â¾öÁ˴󲿷ֽçÃæÓëÂß¼ñîºÏµÄÎÊÌ⣬µ«ÊÇËü²¢²»ÍêÃÀ:
View ºÍ Model ²¢²»ÊÇÍêÈ«ÍÑÀëµÄ£¬»¹ÊÇÓÐһЩÂß¼ñîºÏ£¬ÒòΪÐèÒª¸ù¾ÝÐ޸ĺóµÄmodel´ÓÐÂË¢ÐÂview¡£ ÄÑÃâviewÀïÃæÕ´È¾Ò»µãmodelµÄ½á¹¹¡£
´úÂëÁ¿ÅòÕÍ¡£
²»·½±ã½øÐиü¾«Ï¸µÄ¿ÅÁ£»¯¿ØÖÆ¡£(ÒòΪviewÖ»ÖªµÀ model±»¸ÄÁË£¬µ«²»ÖªµÀ˸ĵÄ!)
- modelÔÚ¶ÔÓ¦¶à¸öviewµÄʱºò£¬ºÜÄѶ¼Ëźòµ½Î»¡£
ÓÚÊÇ¡£¡£¡£
ËÄ´úÄ¿: M-V-P:(Ä£ÐÍ£¬ÊÓͼ£¬ÅÉ·¢Æ÷)
ÇëÔÊÐíÎÒÔÙÉÏÒ»ÕÅÀÏͼ:

Õë¶ÔmvcµÄһЩÎÊÌ⣬ÔÚmvpģʽÏ£¬ Õ¶¶ÏÁË view Óë modelµÄ¹ØÏµ£¬ µ±m ¸Ä±äʱ£¬m ֪ͨ p È¥¸Ä±äv£¬ ËùÒÔv±äµÃ¸ü´¿½à(Ë¢ÐÂÂß¼±»Òƶ¯µ½ÁËp²ã)£¬ ΪÁ˱£Ö¤m¿ÉÒÔ×î´ó³Ì¶ÈµÄ¸´Óà һ²¿·ÖÒµÎñÂß¼Ò²´Ó m ×ªÒÆµ½ÁËpËùÒÔ mvpÏ p ·Ç³£ºñʵ¡£
mvpÖÐ×îºó¸Ä±ävµÄÊÇpÄÇôÔÚ vÓëp Ö®¼ä»áÓÐÒ»¸ö½Ó¿Ú£¬½â¾öÔõôת»»ÒÔ¼°´«ÖµµÄÎÊÌâ¡£
Îå´úÄ¿: M-V-VM:(Ä£ÐÍ£¬ÊÓͼ£¬³éÏóÊÓͼ)
MVVM£¬×îÔçÀ´×ÔÓÚ΢ÈíÉçÇø£¬ÓÃÓÚWPF
Model-View-ViewModelµÄ¹ØÏµÍ¼£º

mvvm Óë mvp µÄ×î´óÇø±ð¾ÍÊÇËüʹÓÃ
Êý¾Ý°ó¶¨(Data Binding)¡¢ÒÀÀµÊôÐÔ(Dependency Property)¡¢ÃüÁî(Command)¡¢Â·ÓÉʼþ(Routed Event) À´¸ã¶¨Óëview²ãµÄ½»»¥£¬ µ«ÊÇÕâÖÖ°ó¶¨ÊÇÓëijÖÖ¾ßÌå¼¼ÊõÕ»Ïà¹ØµÄ£¬ ViewModel´ÓModelÖгéÏó¶øÀ´£¬µ«¸üÌù½üÓÚÒµÎñÄ£ÐÍ£¬ ±ÈÈçÄãModelÖÐij×Ö¶ÎÊÇ true false£¬ ViewModelÖпÉÄܾÍÊÇ “ºÚ”£¬”°×”µÈ ÕâÖÖ¸üÌù½üÒµÎñ³¡¾°µÄÃèÊö¡£ ViewModelÖеÄÊôÐÔÖ±½ÓÓëij¾ßÌå¿Ø¼þµÄÊôÐÔÏà°ó¶¨¡£ Ò²¾ÍÊÇ˵µ±Ä³¾ßÌå¿Ø¼þ·¢Éú±ä»¯£¬ViewModelÖÐµÄ Ä³¸ö×ֶξͻá¸ú×ű仯£¬È»ºóModelÖеÄ×Ö¶ÎÒ²»á½øÒ»²½±ä»¯¡£
ÒÔÉÏÊöΪÀý:
Óû§Ê¹ÓÃUIÐÞ¸ÄÁËÐÔ±ð×Ö¶Î:
1.²Ù×÷´¥·¢°ó¶¨ÔÚUIÉϵÄʼþ(Data Binding ×Ô¶¯Íê³É)
2.ʼþ½øÈëvm²ã£¬¸ù¾Ý°ó¶¨¹æÔò£¬ÕÒ³ö¶ÔÓ¦µÄvm×ֶΣ¬ (Èç±íʾÐÔ±ðµÄ×é¼þ°ó¶¨µÄÊÇvmÖеÄsex×Ö¶Î)
3.vmÉϵÄsex±»ÉèÖóÉtrue£¬(view²ãÉÏֵΪ”ÄД “Å®”£¬µ«ÊÇÔÚ³éÏóµÄvm²ãÖÐÎÒÃÇÓà bool À´±íʾÕâ¸ö×Ö¶Î)
4.ͬÀíѰÕÒm²ãÉϵĶÔÓ¦×ֶΣ¬mÉϵÄsex±»vmÐ޸ijÉ1
5.mÕÒµ½ËùÓÐÓësex×Ö¶ÎÓа󶨹ØÏµµÄvm֪ͨËûÃǸüС£
6.ËùÓнӵ½Í¨ÖªµÄvm¸üÐÂsex×ֶΡ£
7.vmѰÕÒËùÓÐÓësex×Ö¶ÎÓа󶨹ØÏµµÄview²ã¿Ø¼þ£¬Í¨ÖªËûÃǸüÐÂ(Data Binding ×Ô¶¯Íê³É)¡£
8.view±»¸üС£ËùÓÐÉæ¼°µ½sex×ֶεÄ×é¼þ¶¼±»Ë¢Ð¡£
ÓÐʱºòÕâ¸öÁ÷³Ìδ±ØÊÇ´Ó 1 ²½¿ªÊ¼£¬Èç¹ûÖ±½Ó¶Ô m ½øÐÐÐ޸ģ¬Ôò¾ÍÊÇ´ÓµÚ 4 ²½¿ªÊ¼µÄ¡£
ͬÀíÈç¹ûûÓÐview²ã£¬ÔòûÓбØÒª½øÐÐ 7 £¬ 8²½Öè¡£
Õâ¾ÍÊÇ˵ mvvm Ï¿ÉÒÔÍêÈ«¸Éµô view ²ã£¬ ·½±ãµÄ½øÐÐ×Ô¶¯»¯²âÊÔ¡£
С½á (ÍÆËÍ/¶©ÔÄ Õâ¸öÊÇÊý¾ÝÇý¶¯µÄºËÐÄ)
²»¹ÜÊÇ mvc »¹ÊÇ mvp »ò mvvm £¬ËûÃǶ¼ÊÇ
Êý¾ÝÇý¶¯ µÄ¡£ºËÐÄÉÏ»ùÓÚ
m ÍÆËÍÏûÏ¢£¬v»òpÀ´¶©ÔÄ Õâ¸öÄ£ÐÍ¡£Ê¹ÓÃÕßÐèҪά»¤µÄ²»ÔÙÊÇ UI Ê÷£¬¶øÊdzéÏóµÄÊý¾Ý¡£(ͨ¹ýÊý¾Ý£¬¿ÉÒÔËæÊ±¹¹½¨³öÐ嵀 UI Ê÷)£¬ µ± UI µÄ״̬һµ©¶àÆðÀ´£¬ÕâÖÖ¿ò¼ÜģʽµÄÓÅÊÆ±ãÌåÏÖ³öÀ´ÁË¡£ ÒòΪά»¤Êý¾Ý¿É±Èά»¤ UI ״̬ˬ¶àÁË¡£
ǰ¶ËÖеÄmvc:
²¢²»ÊÇ˵ m v c ÈýÕßÒ»¶¨Òª¶ÀÁ¢³öÏÖ²ÅÐУ¬±ÈÈç Backbone¡£js ËüµÄ controller ²ãÖ»ÊÇÒ»¸ö router¡£ ÆäʵÔÚ´«Í³ mvc ÖÐ controller Àï±¾À´¾ÍûÓÐÌ«¶àµÄÂß¼£¬ËûÖ»ÊÇÒ»¸öʼþµÄ”´«µÝÕß”£¬ ¼ÓÖ® javascript ÖÐÈËÃÇϰ¹ßʹÓÃÄäÃûº¯Êýµ±Ê¼þ»Øµ÷£¬ÕâÑù¾ÍµÈÓÚÖ±½ÓÔÚ view ²ãÖаѹ¦Äܺ¯ÊýʵÏÖÁË¡£ ËùÒÔ view Óë controller ºÏ²¢ »òÕß controller Óëmodel ºÏ²¢¶¼ÓпÉÄÜ¡£
JavaScript
1
2
3 |
$(xxx).click(function(e){
console.log(e);
}) |
±¾ÎİæÈ¨¹éÀÖÓã²¥¿Íwebǰ¶Ë¿ª·¢Ñ§ÔºËùÓУ¬»¶Ó×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦£¬Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿Íwebǰ¶ËÅàѵѧԺ£»
Ê×·¢£ºhttp://www.itcast.cn/web/