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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
iOSÖØ¹¹Êµ¼ù
 
  2467  次浏览      31
 2018-10-17
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcocoachina£¬±¾ÎÄÖ÷Òª½éÉÜÁË×÷ÕßÔÚÏîÄ¿ÖØ¹¹¹ý³ÌÖеĵÄһЩ×ܽáºÍ·ÖÏí¡£

ÏîÄ¿¼ò½éºÍMVPÄ£Ê½ÖØ¹¹

ÏîÄ¿¼ò½é

Ê×Ïȼòµ¥½éÉÜÒ»ÏÂÏîÄ¿Çé¿ö¡£ÎÒÃÇÔ­ÓÐÏîÄ¿µÄ¼Ü¹¹ÊDZȽϱê×¼µÄMVCģʽ£¬Ò²ÊÇÆ»¹û¹Ù·½ÍƼöµÄ¼Ü¹¹Ä£Ê½¡£Model²ãÓÃÀ´±íʾʵÌåÀ࣬View²ã¸ºÔð½çÃæÕ¹Ê¾ºÍ´«µÝUIʼþ£¬Controller²ã¸ºÔð´ó²¿·ÖµÄÒµÎñÂß¼­¡£³ý´ËÖ®Í⣬¶ÔÒ»²¿·Ö¹«¹²µÄ¿É¸´ÓõÄÂß¼­£¬ÎÒÃdzéÏó³öService²ã£¬Ìṩ¸øControllerʹÓã¬ÁíÍâÍøÂç²ãÒ²¶ÀÁ¢³öÀ´¡£ÏÂͼ±È½ÏÇå³þµØÕ¹Ê¾ÁËÕûÌå¼Ü¹¹

ÕûÌå¼Ü¹¹

MVCģʽµÄÎÊÌâ

MVC¼Ü¹¹×÷Ϊƻ¹û¹Ù·½ÍƼöµÄ¼Ü¹¹Ä£Ê½£¬°ÑÊý¾ÝModelºÍÕ¹ÏÖViewͨ¹ýController²ã¸ôÀ뿪£¬ÔÚÏîÄ¿¹æÄ£½ÏСµÄʱºòÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£Ëæ×ÅÏîÄ¿¸´ÔÓÐÔµÄÌá¸ß£¬ÎÒÃÇÒ²½¥½¥¸Ð¾õµ½MVCģʽµÄ±×¶Ë£¬Ö÷ÒªÌåÏÖÔÚÏÂÃæ¼¸¸ö·½Ãæ

Controller²ãÖ°Ôð¹ý¶à£¬ModelºÍView²ãÌ«¼òµ¥

Controller´¦ÀíÒµÎñÂß¼­£¬´¦ÀíUI¸üУ¬´¦ÀíUIʼþ£¬Í¬²½Model²ã£¬ÎÒÃǼ¸ºõËùÓеĴúÂ붼дÔÚÁËController²ã¡£Éè¼ÆÄ£Ê½ÀïÓе¥Ò»Ä£Ê½Ô­Ôò£¬Äã¿´ÕâÀïµÄController²ãÒѾ­ÖÁÉÙÓÐËÄÖÖÖ°ÔðÁË¡£

ÒµÎñÂß¼­ºÍUI»ìÔÓÔÚÒ»Æð£¬ÄÑÒÔ±àдµ¥Ôª²âÊÔ

ÕâÒ»µãÒ»·½ÃæÊÇÒòΪCocoa¿ò¼ÜÀïµÄController²ã£¬¾ÍÊÇÎÒÃÇ×îÊìϤµÄUIViewControllerºÍViewÊÇÌìÈ»ñîºÏµÄ£¬ºÜ¶àviewµÄÉúÃüÖÜÆÚ·½·¨ÈçviewWillAppear¶¼´æÔÚÓÚVC£¬ÁíÒ»·½ÃæÎÒÃǺܶàʱºòҲϰ¹ßÓÚ°ÑUI²Ù×÷ÉõÖÁ³õʼ»¯²Ù×÷·ÅÔÚVCÀµ¼ÖÂUIºÍÒµÎñÂß¼­»ìÔÓÔÚÒ»Æð¡£µ±ÄãÏë¶ÔÒµÎñÂß¼­±àдµ¥Ôª²âÊÔµÄʱºò£¬¿´×ÅÒµÎñÂß¼­´úÂëÀï»ìÔÓµÄUI²Ù×÷£¬¾ÍÖªµÀʲô½Ð¾Ù²½Î¬¼è¡ª¡ªÊý¾Ý¿ÉÒÔMock£¬UIÊDz»¿ÉÄܱ»MockµÄ¡£

ÒµÎñÂß¼­´úÂë´óÁ¿´æÔÚÓÚController²ã£¬Î¬»¤À§ÄÑ

µ±Ò»¸ö½çÃæ¹¦ÄܱȽϸ´ÔÓµÄʱºò£¬ÎÒÃÇËùÓеÄÂß¼­´úÂë¶¼»á¶Ñ»ýÔÚControllerÖУ¬±ÈÈçÎÒÃÇÔ­ÓеÄWebViewControllerµÄ´úÂë¾Í¶à´ï5000ÐУ¬ÔÚÕâÖÖÇé¿öÏÂά»¤´úÂë¼òÖ±ÊÇÈçÂı¡±ù¡£

MVPģʽµÄÖØ¹¹

¶ÔÓÚController²ã¹ýÓÚÓ·Ö×µÄÎÊÌ⣬MVPģʽÔòÄܽϺõؽâ¾öÕâ¸öÎÊÌ⡪¡ª¼ÈÈ»UIViewControllerºÍUIViewÊÇñîºÏµÄ£¬Ë÷ÐÔ°ÑÕâÁ½Õß¶¼¹éΪView²ã£¬ÒµÎñÂß¼­Ôò¶ÀÁ¢´æÔÚÓÚPresenter²ã£¬Model²ã±£³Ö²»±ä¡£ÏÂͼ±È½ÏÇå³ýµÃչʾÁËMVPģʽµÄ½á¹¹

MVPģʽ¼ò½é

ÎÒÃÇÀ´¿´Ò»ÏÂMVPģʽÄÜ·ñ½â¾öMVCģʽ´æÔÚµÄÎÊÌâ

Controller²ãÖ°Ôð¹ý¶à£¬ModelºÍView²ãÌ«¼òµ¥

ÔÚMVPģʽÏ£¬Controller²ãºÍView²ãÒѾ­ºÏ²¢ÎªView²ã£¬×¨ÃŸºÔð´¦ÀíUI¸üкÍʼþ´«µÝ£¬Model²ã»¹ÊÇ×÷ΪʵÌåÀà¡£Ô­±¾Ð´ÔÚViewController²ãµÄÒµÎñÂß¼­ÒѾ­Ç¨ÒƵ½PresenterÖС£MVPģʽ½ÏºÃµØ½â¾öÁËController²ãÖ°Ôð¹ý¶àµÄÎÊÌâ¡£

ÒµÎñÂß¼­ºÍUI»ìÔÓÔÚÒ»Æð£¬ÄÑÒÔ±àдµ¥Ôª²âÊÔ

Presenter²ãÖ÷Òª´¦ÀíÒµÎñÂß¼­£¬ViewController²ãʵÏÖPresenterÌṩµÄ½Ó¿Ú£¬Presenterͨ¹ý½Ó¿ÚÈ¥¸üÐÂView£¬ÕâÑù¾ÍʵÏÖÁËÒµÎñÂß¼­ºÍUI½âñî¡£Èç¹ûÎÒÃÇÒª±àдµ¥Ôª²âÊԵϰ£¬Ö»ÐèÒªMockÒ»¸ö¶ÔÏóʵÏÖPresenterÌṩµÄ½Ó¿Ú¾ÍºÃÁË¡£MVPģʽ½ÏºÃµØ½â¾öÁËUIºÍÂß¼­µÄ½âñî¡£

ÒµÎñÂß¼­´úÂë´óÁ¿´æÔÚÓÚController²ã£¬Î¬»¤À§ÄÑ

ͨ¹ý°ÑÒµÎñÂß¼­Ç¨ÒƵ½Presenter²ã£¬Controller²ãµÄÀ§¾³ËƺõµÃµ½Á˽â¾ö£¬µ«ÊÇÈç¹ûij¸öÐèÇóÂß¼­½ÏΪ¸´ÔÓ£¬µ¥´¿µÄ°ÑÒµÎñÂß¼­Ç¨Òƽâ¾ö²»Á˸ù±¾µÄÎÊÌ⣬Presenter²ãÒ²»á´æÔÚ´óÁ¿ÒµÎñÂß¼­´úÂ룬ά»¤À§ÄÑ¡£Õâ¸öÎÊÌ⣬ÎÒÃÇÏÂÃæ»áÌÖÂÛÈçºÎ½â¾ö¡£

MVCģʽ¸Ä½ø¡ª¡ªRouterģʽ

ÕâÀïÖ÷ÒªÊÇ¿¼ÂǽçÃæ¼äÌø×ªµÄ´úÂëÈçºÎÖØ¹¹

Routerģʽ

ʵÀý·ÖÎö

Ç°ÃæÎÒÃÇÌáµ½£¬MVPģʽËäÈ»Äܽâ¾öÐí¶àMVCģʽÏ´æÔÚµÄÎÊÌ⣬µ«¶ÔÓڱȽϸ´ÔÓµÄÐèÇ󣬻¹ÊÇ»á´æÔÚÂß¼­¹ýÓÚ¸´ÔÓ£¬Presenter²ãÒ²³öÏÖÄÑÒÔά»¤µÄÎÊÌâ¡£ÏÂÃæÎÒÃǾÍͨ¹ýÒ»¸öʵ¼ÊµÄÀý×Ó£¬À´¿´¿´Ãæ¶Ô¸´ÔÓµÄÒµÎñÂß¼­£¬ÎÒÃÇÓ¦¸ÃÈçºÎÈ¥Éè¼ÆºÍʵÏÖ¡£

ºÜ¶à¸´ÔÓµÄÐèÇó£¬ÔÚ×î³õ¶¼ÊÇ´ÓÒ»¸ö¼òµ¥µÄ³¡¾°£¬Ò»²½²½ÍùÉÏÔö¼Ó¹¦ÄÜ¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬Èç¹û²»³ÖÐøµÄ½øÐÐÓÅ»¯ºÍÖØ¹¹£¬µ½×îºó¾Í³ÉÁËËùνµÄ"Ö»ÓÐÉϵÛÄÜ¿´¶®µÄ´úÂë"¡£ËµÁËÕâô¶à£¬½øÈëÕýÌ⣬À´¿´Õâ¸öÐèÇó¡£

V1.0 µ¥ÎļþÉÏ´«

ʵÏÖÒ»¸ö¼òµ¥µÄµ¥ÎļþÉÏ´«£¬ÎļþµÄË÷Òý´æ´¢ÔÚÊý¾Ý¿âÖУ¬Îļþ´æ´¢ÔÚAppµÄɳÏäÀïÃæ¡£Õâ¸öÓ¦¸Ã¶ÔÓÚÓо­ÑéµÄ¿Í»§¶Ë¿ª·¢ÕßÀ´ËµÊÇС²ËÒ»µú£¬±È½Ï¼òµ¥Ò²ÈÝÒ×ʵÏÖ¡£ÎÒÃÇ¿ÉÒÔ°ÑÕâ¸öÐèÇó´óÖ²ð·Ö³ÉÒÔϼ¸¸ö×ÓÐèÇó

1.³õʼ»¯ÉÏ´«View

2.¸üÐÂÉÏ´«View

3.µã»÷ÉÏ´«°´Å¥Ê¼þ

4.Êý¾Ý¿âÖлñÈ¡ÉÏ´«Ä£ÐÍ

5.·¢ÆðHTTPÇëÇóÉÏ´«Îļþ

6.¼ì²éÍøÂç״̬

ÒÔÉϼ¸ÏîÈç¹ûʹÓô«Í³µÄMVCģʽ£¬ÊµÏÖÆðÀ´ÈçÏÂͼËùʾ

MVC

ÎÒÃÇ¿ÉÒÔ¿´µ½ÉÏÊöÐèÇó»ù±¾¶¼Ö±½ÓÔÚUploadViewControllerÖÐʵÏÖ£¬Ä¿Ç°ÐèÇó»¹ÊDZȽϼòµ¥µÄÇéÐÎÏÂÃæ£¬»¹ÊÇÃãÇ¿Äܹ»½ÓÊÜ£¬Ò²²»ÐèÒª¸ü¶àµÄ˼¿¼¡£Èç¹ûʹÓÃMVPµÄģʽ½øÐÐÓÅ»¯£¬ÈçÏÂͼËùʾ

MVP.png

ÏÖÔÚUploadPresenter¸ºÔð´¦ÀíÉÏ´«Âß¼­ÁË£¬¶øUploadViewControllerרעÓÚUI¸üкÍʼþ´«µÝ£¬ÕûÌåµÄ½á¹¹¸ü¼ÓÇåÎú£¬ÒÔºóά»¤´úÂëÒ²»á±È½Ï·½±ã¡£

V2.0 ¶àÎļþÉÏ´«

ÐèÇóÀ´ÁË£¡ÐèÒªÔÚÔ­À´µÄ»ù´¡ÉÏÖ§³Ö¶àÎļþÉÏ´«£¬Òâζ×ÅÎÒÃǶàÁËÒ»¸ö×ÓÐèÇó

7.ά»¤ÉÏ´«Ä£ÐͶÓÁÐ

ºÜÏÔÈ»£¬ÎÒÃÇÐèÒªÔÚUploadPresenterÖÐÔö¼ÓÒ»¸öά»¤ÉÏ´«¶ÓÁеŦÄÜ£¬×î³õÎÒҲȷʵÊÇÕâÑùʵÏֵ쬵«ÊÇÓÉÓÚÎļþÉÏ´«ÐèÒª¼àÌýµÄʼþ±È½Ï¶à£¬»Øµ÷Ò²±È½ÏƵ·±£¬Ö±½ÓÔÚPresenterÖмÌÐøÐ´ÕâÑùµÄÂß¼­´úÂ룬ÒѾ­³É±¶Ôö¼ÓÁË´úÂëµÄ¸´ÔÓÐÔ¡£

ËùÒÔ¾­¹ýÒ»·¬Ë¼¿¼£¬ÎÒ¿¼ÂǰÑÎļþÉÏ´«Õⲿ·ÖµÄÂß¼­µ¥¶ÀÌáÈ¡³öÒ»²ãFileUploader£¬¶øUploadPresenterÖ»¸ºÔðά»¤FileUploaderµÄ¶ÓÁÐÒÔ¼°¼ì²éÍøÂç״̬¡£¾ßÌåµÄʵÏÖÈçÏÂËùʾ¡£

MVP2.png

ÎÒÃÇ¿ÉÒÔ¿´µ½£¬·Ö²ãÖ®ºóµÄ½á¹¹ÓÖ¸ü¼ÓÇåÎúÁË£¬Ã¿Ò»²ãµÄÖ°Ô𶼱Ƚϵ¥Ò»£¬Ä¿Ç°¿´ÆðÀ´Ò»ÇÐOK£¡

V3.0 ¶àÀ´Ô´ÉÏ´«

Ô­À´ÎÒÃǵÄÉÏ´«ÎļþµÄÀ´Ô´ÊÇ´æÔÚÓÚAppɳÏäÀïµÄ£¬ÎÒÃÇͨ¹ýÊý¾Ý¿â²éѯ¿ÉÒÔÕÒµ½Õâ¸öÎļþµÄË÷ÒýºÍ·¾¶£¬½ø¶ø»ñÈ¡µ½Õâ¸öÎļþ½øÐÐÉÏ´«¡£ÏÖÔÚÍò¶ñµÄÐèÇóÓÖÀ´ÁË£¬ÐèÒªÖ§³ÖÉÏ´«ÏµÍ³Ïà²áÖлñÈ¡µÄͼƬ/ÊÓÆµ¡£

8.Ö§³ÖϵͳÏà²áºÍAppɳÏäÖлñÈ¡Îļþ

µ½ÕâÀï¿ÉÄÜÓÐЩ¶ÁÕßÒѾ­ÓеãÍ·´óÁË£¬Èç¹ûûÓÐ×Ðϸ˼¿¼£¬ºÜ¿ÉÄÜ´ÓÕâÀï¾Í×ßÏòÁË´úÂëÖÊÁ¿±ÀÀ£µÄµÀ·¡£

Õâ¸öʱºò£¬ÎÒÃǾÍҪ˼¿¼£¬ËûÃÇÊǶàÀ´Ô´£¬µ«ÊǶÔÓÚFileUploaderÀ´Ëµ£¬ËüÆäʵ²»¹ØÐÄÄ£Ð͵ÄÀ´Ô´£¬ËüÖ»ÐèÒª»ñÈ¡µ½Ä£Ð͵Ķþ½øÖÆÁ÷¡£ÓÚÊÇ£¬ÎÒÃÇ¿ÉÒÔ³éÏó³öÒ»¸öBaseModel£¬Ìṩһ¸östreamÖ»¶ÁÊôÐÔ£¬Á½ÖÖÀ´Ô´·Ö±ð¼Ì³ÐBaseModel£¬¸÷×ÔÖØÔØstreamÖ»¶ÁÊôÐÔ£¬ÊµÏÖ×Ô¼ºµÄ¹¹ÔìÎļþstreamµÄ·½·¨¡£¶ÔÓÚFileUploaderÀ´Ëµ£¬ËüÖ»³ÖÓÐBaseModel¼´¿É£¬Õâ¾ÍÊǼ̳кͶà̬µÄÒ»¸öµäÐ͵ÄʹÓó¡¾°¡£

Èç¹ûºóÐø»¹Óиü¶àÀ´Ô´µÄÎļþ£¬±ÈÈçÍøÂçÎļþ£¨ÏÈÏÂÔØÔÙÉÏ´«£¿£©,Ò²Ö»ÐèÒª¼ÌÐø¼Ì³ÐBaseModel£¬ÖØÔØstream¼´¿É£¬¶ÔÓÚFileUploaderºÍËüµÄËùÓÐÉϲãÀ´Ëµ£¬Ò»Çж¼ÊÇ͸Ã÷µÄ£¬ÎÞÐè½øÐÐÐ޸ġ£¾­¹ýÕâÑùµÄÉè¼Æ£¬ÎÒÃǵĴúÂëµÄ¿Éά»¤ÐԺͿÉÀ©Õ¹ÐÔÓÖºÃÁË¡£ÏÂÃæÊǼܹ¹Í¼¡£

MVP3.png

V4.0 ¶à·½Ê½ÉÏ´«

ÔÚHTTPÎļþÉÏ´«ÖУ¬ÎÒÃÇ¿ÉÒÔÖ±½ÓÉÏ´«ÎļþµÄ¶þ½øÖÆÁ÷£¬ÕâÖÖ¾ÍÐèÒª·þÎñ¶Ë×öÌØ¶¨µÄÖ§³Ö¡£µ«¸üΪ³£ÓúÍÖ§³Ö¹ã·ºµÄ×ö·¨ÊÇʹÓÃHTTP±íµ¥Îļþ´«Ê䣬¼´×é×°HTTPÇëÇóµÄbodyʱ²ÉÓÃmultipart/form-dataµÄ±ê×¼×é×°£¬´«ÊäÊý¾Ý¡£ÓÚÊÇ£¬ÎÒÃÇÓÖ¶àÁËÒ»¸öÐèÇó£º

9.Ö§³Ö±íµ¥´«ÊäºÍÁ÷´«Êä

˼·ºÍ¸Õ²ÅµÄ¶àÀ´Ô´ÉÏ´«²î²»¶à£¬ÎÒÃǰÑÉÏÃæµÄÁ½ÖÖÀ´Ô´µÄÄ£ÐÍ£¬¼´FSBaseMºÍABaseM³éÏóΪ¸¸À࣬¸¸ÀຬÓи÷×ÔµÄÎļþ¶þ½øÖÆÊý¾ÝµÄ³éÏó£¬×ÓÀà·Ö±ðʵÏÖ¶þ½øÖÆÖ±½Ó×é×°Á÷£¬ºÍ°´multipart/form-data¸ñʽ×é×°Á÷£¬ÊµÏÖÈçÏÂͼ¡£

MVP4.png

V5.0 Ö§³ÖFTP/SocketÉÏ´«

¸Õ²ÅÎÒÃǵÄÎļþÉÏ´«£¬µ×²ãµÄЭÒéÊÇ»ùÓÚHttp£¬´ËʱÎÒÃÇÐèÒªÖ§³ÖFTP/SocketЭÒéµÄ´«Ê䣬Ӧ¸ÃÔõô°ì£¿

10.Ö§³ÖHTTP/FTP/Socket

¾­¹ýÉÏÃæµÄ˼¿¼£¬ÏàÐÅÄãÒ»¶¨ÖªµÀ¸ÃÔõô×öÁË¡£ÕâÀïÁô¸ö˼¿¼£¬´ð°¸Çë´ÁÕâÀïMVP_V5¼Ü¹¹

¶Ô±È

×îºó£¬ÎÒÃǰÑĿǰµÄÐèÇóÈ«¶¼ÕûÀíÒ»ÏÂ

³õʼ»¯ÉÏ´«View

1.¸üÐÂÉÏ´«View

2.µã»÷ÉÏ´«°´Å¥Ê¼þ

3.Êý¾Ý¿âÖлñÈ¡ÉÏ´«Ä£ÐÍ

4.·¢ÆðHTTPÇëÇóÉÏ´«Îļþ

5.¼ì²éÍøÂç״̬

6.ά»¤ÉÏ´«Ä£ÐͶÓÁÐ

7.Ö§³ÖϵͳÏà²áºÍAppɳÏäÖлñÈ¡Îļþ

8.Ö§³Ö±íµ¥´«ÊäºÍÁ÷´«Êä

9.Ö§³ÖHTTP/FTP/Socket

ÎÒÃÇ¿´¿´£¬Èç¹û·Ö±ð²ÉÓÃMVC¡¢MVP_V1¡¢MVP_V2¡¢MVP_V3¡¢MVP_V4¡¢MVP_V5£¬À´ÊµÏÖĿǰµÄÊ®¸öÐèÇó£¬ÎÒÃǵĴúÂë´óÖ»á·Ö²¼ÔÚÄļ¸²ã¡£

ÓÅ»¯ºóµÄ¼Ü¹¹Ä£Ê½Ö®¼äµÄ±È½Ï

ÊëÓÅÊëÁÓһĿÁËÈ»¡£Èç¹û²ÉÓÃ×îԭʼµÄMVCģʽµÄ»°£¬±£ÊعÀ¼ÆViewController´úÂëÁ¿ÖÁÉÙ3KÐÐÒÔÉÏ¡£

×ܽá

ÔËÓÃMVPµÄÉè¼ÆÄ£Ê½£¬Âß¼­ºÍUI²Ù×÷½âñî

·Ö²ãģʽ£¬ÉϲãÓµÓÐϲ㣬ϲãͨ¹ý½Ó¿ÚÓëÉϲãͨÐÅ£¬´ïµ½½âñî¡£

ÀûÓü̳кͶà̬£¬ÆÁ±Îµ×²ãʵÏÖµÄϸ½Ú£¬´ïµ½Ö°Ôð·ÖÀëºÍ¸ßÀ©Õ¹ÐÔ

´úÂëÓÅ»¯ºÍÖØ¹¹µÄ¼¼ÇÉ

ÔÚÕâ´ÎµÄÏîÄ¿ÖØ¹¹ÖУ¬ÎÒÒ²×ܽáÁËÒ»Ð©ÖØ¹¹·½ÃæµÄ¼¼ÇɺÍÌùÊ¿£¬Ï£ÍûÄܰïÖúµ½Ï뿪ʼ½øÐдúÂëÖØ¹¹µÄͬѧ

ʲ»¹ýÈý

´ó¶ÎÖØ¸´µÄ´úÂë³öÏÖÁËÈý´Î»òÒÔÉÏ

¡ª¡ªÌáÈ¡³ÉÒ»¸ö¹«¹²µÄ·½·¨

ÕâÒ»µãÊÇ×î³£¼ûÒ²×îÈÝÒ××öµ½µÄ£¬Ö»ÒªÔÚÆ½Ê±µÄ±àÂë¹ý³ÌÖÐÑø³ÉÕâÖÖϰ¹ß£¬¶ÔÓÚ³öÏÖ¹ýÈý´ÎÒÔÉÏÖØ¸´´úÂë¶Î£¬ÌáÈ¡³ÉÒ»¸ö¹«¹²·½·¨¡£

Ò»¸öÀàµÄÖ°ÔðÓÐÈýÖÖ»òÒÔÉÏ

¡ª¡ªÍ¨¹ýºÏÀí·Ö²ãµÄ·½Ê½£¬¼õÉÙÖ°Ôð

ÕâÒ»µãÔÚÉÏÃæµÄÀý×ÓÖÐÒѾ­²ûÊöµØ±È½ÏÇå³þÁË£¬Í¨¹ýÖ°ÔðµÄ·Ö²ã£¬Éϲã³ÖÓÐϲ㣬ϲãͨ¹ý½Ó¿ÚÓëÉϲãͨѶ¡£ÆäʵÕâÒ²ÊÇMVPģʽµÄ±¾ÖÊ¡£

ͬÀàµÄif/else³öÏÖÁËÈý´Î»òÒÔÉÏ

¡ª¡ª¿¼ÂÇʹÓóéÏóÀàºÍ¶à̬´úÌæif/else

Èç¹ûÏàͬµÄif/elseÅжÏÔÚÄãµÄ´úÂëÖгöÏÖÁ˺ܶà´ÎµÄ»°£¬ÔòÓ¦¸Ã¿¼ÂÇÉè¼ÆÒ»¸ö³éÏóÀàÈ¥Ìæ´úÕâЩÅжϡ£ÕâÀï¿ÉÄÜÓеãÄÑÒÔÀí½â£¬¾Ù¸öÀý×Ӿͺö®ºÜ¶à

±ÈÈ磬ÏÖÔÚÎÒÃÇÓÐÒ»¸öË®¹ûÀ࣬ÓÐÈýÖÖË®¹û£¬Ë®¹ûÓÐÑÕÉ«¡¢¼ÛÇ®ºÍÆ·ÖÖ

class Fruit {

var name:String = ""

func getColor() -> UIColor? { if name == "apple" { return UIColor.red
} else if name == "banana" { return UIColor.yellow
} else if name == "orange" { return UIColor.orange
} return nil
}
func getPrice() -> Float? { if name == "apple" { return 10
} else if name == "banana" { return 20
} else if name == "orange" { return 30
} return nil
}

func getType() -> String? { if name == "apple" { return "ºì¸»Ê¿"
} else if name == "banana" { return "°Å½¶"
} else if name == "orange" { return "»ÊµÛ"
} return nil
}
}

ÕâÀïµÄ¶ÔÃû³ÆnameµÄÏàͬµÄif/elseÅжϳöÏÖÁËÈý´Î£¬Èç¹û´ËʱÎÒÃǶàÁËÒ»ÖÖË®¹ûÀ棬ÎÒÃǵÃÐÞ¸ÄÉÏÊöËùÓеÄif/elseÅжϣ¬ÕâÑù¾Í»á·Ç³£ÄÑά»¤¡£

ÕâÖÖ³¡¾°ÎÒÃÇ¿ÉÒÔ¿¼ÂdzéÏó³öÒ»¸öFruitµÄ³éÏóÀà/½Ó¿Ú/ЭÒ飬ͨ¹ýʵÏÖË®¹ûÀà/½Ó¿Ú/ЭÒéµÄ·½Ê½£¬´ËʱÈç¹û¶àÁËÒ»ÖÖË®¹û£¬ÈÃÕâÖÖË®¹û¼ÌÐøÊµÏÖFruitЭÒé¾ÍÐУ¬ÕâÑùÎÒÃǾÍͨ¹ýÐÂÔöµÄ·½Ê½Ìæ´úÐ޸ģ¬Ìá¸ßÁË´úÂëµÄ¿Éά»¤ÐÔ¡£

protocol Fruit {
func getPrice() -> Float?
func getType() -> String?
func getColor() -> UIColor?
var name:String { get }
}class Apple:Fruit {
var name:String = "apple"
func getColor() -> UIColor? { return UIColor.red
}

func getPrice() -> Float? { return 10
}

func getType() -> String? { return "ºì¸»Ê¿"
}
}class Banana:Fruit {
var name:String = "banana"
func getColor() -> UIColor? { return UIColor.yellow
}

func getPrice() -> Float? { return 20
}

func getType() -> String? { return "°Å½¶"
}
}class Orange:Fruit {
var name:String = "orange"
func getColor() -> UIColor? { return UIColor.orange
}

func getPrice() -> Float? { return 30
}

func getType() -> String? { return "»ÊµÛ¸Ì"
}
}

ºÏÀí·Ö²ã

×ÝÏò·Ö²ã¡ª¡ª²ã¼¶Ö®¼äÓйØÁª

Éϲã³ÖÓÐϲ㣬ϲãͨ¹ý½Ó¿ÚÓëÉϲãͨÐÅ¡£ÕâÀïΪʲô²»ÈÃϲãÒ²³ÖÓÐÉϲãÄØ£¿Ö÷Òª»¹ÊÇΪÁËÄܹ»½âñϲãÉè¼ÆµÄÄ¿µÄÊÇΪÉϲã·þÎñµÄ£¬Ëü²»Ó¦¸ÃÒÀÀµÉϲ㡣ÕâÖÖÉè¼ÆÄ£Ê½ÔÚ¼ÆËã»ú¿ÆÑ§ÖÐÊǺܳ£¼ûµÄ£¬±ÈÈç¼ÆËã»úÍøÂçÖеÄÍøÂç·Ö²ãÉè¼Æ¡£

ºáÏò·Ö²ã¡ª¡ª²ã¼¶Ö®¼äÎÞ¹ØÁª

ÊÊÓÃÓÚ¹¦ÄÜÏà¶Ô¶ÀÁ¢µÄÄ£¿é£¬¼òµ¥»®·Ö¼´¿É¡£ÎÒÃǵÄiOSÏîÄ¿µÄÊ×Ò³¾ÍÊÇÓɺü¸¸ö²¿·Ö×é³É£¬Õâ¸ö²¿·ÖÖ®¼äÎÞÌ«¶àµÄ¹ØÁª£¬ÎÒÃǼòµ¥»®·Ö³É¼¸¸öÄ£¿é¾ÍÐС£Èç¹û³öÏÖÁËÉÙÊýÐèҪͨѶµÄ³¡¾°£¬Ê¹ÓÃNotification¼´¿É¡£

±ÜÃâ¹ý¶ÈÉè¼Æ

Ô½¼òµ¥µÄÔ½ÊÇÓÐЧµÄ

¸´Ôӵļܹ¹Éè¼ÆÍùÍùÔÚ¿Í»§¶Ë¸ßËÙµü´ú¿ª·¢ÖÐÒâÒå²»´ó£¨Ïà±È·þÎñ¶Ë£©

ûÓÐÒøµ¯£¡

Èí¼þ¿ª·¢Êǹ¤³Ì»¯µÄ£¬Ã»ÓÐÍêÃÀµÄ¼Ü¹¹Ä£Ê½£¬ºÜ¶àʱºòÐèÒª¾ßÌåÎÊÌâ¾ßÌå·ÖÎö£¬Áé»îÔËÓÃÉè¼ÆÄ£Ê½£¬µÃµ½¾Ö²¿µÄ×îÓŽ⡣±ÈÈçÇ°ÃæÌáµ½µÄMVPģʽ£¬Èç¹ûÉú°áÓ²Ì×£¬Í¬ÑùÎÞ·¨½â¾öPresenter²ã¸´ÔÓµÄÎÊÌâ¡£

ÈçºÎÅжϹý¶ÈÉè¼Æ£¿

½ºË®´úÂë¹ý¶à

´óÁ¿ÎļþµÄÐÐÊýСÓÚ100

ÏëÁËÒ»Ì죬ûд³ö´úÂ룬Ҳûд³ö¼Ü¹¹·½°¸

ÖØ¹¹µÄʱ»úºÍ¶ÔÏó

ʱ»ú

µ¥Îļþ´úÂëÐÐÊý¿ªÊ¼³¬¹ý500ÐеÄʱºò

Code ReviewÊÇÖØ¹¹µÄºÃ°ïÊÖ

¶ÔÏó

ÐèÇó¾­³£±ä»¯»òÔö¼ÓµÄ¹¦ÄÜ£¬Ò»¶¨Òª×¢ÒâÉè¼Æ£¬±ÜÃâ×ßÏòÖÊÁ¿²»¿É¿Ø

Îȶ¨ÇÒ²»±äµÄ¹¦ÄÜ£¬²»Öع¹

×ܽá

×îºóÎÒÏë̸̸Éè¼ÆÄ£Ê½¡£ÆäÊµÖØ¹¹µÄ¹ý³ÌÆäʵҲ¾ÍÊÇÁé»îÔËÓÃÉè¼ÆÄ£Ê½¶Ô´úÂë½øÐÐÓÅ»¯ºÍ¸Ä½ø¡£ºÜ¶àÈËÉè¼ÆÄ£Ê½Ò²¿´Á˺ܶ࣬ѧϰÁ˺ܶ࣬µ«ÕæÕýÔÚ¹¤×÷ÖÐÄܺÏÀíʹÓõÄÈ´ºÜÉÙ¡£ËùÒԹؼü»¹ÔÚÁé»îÔËÓÃËĸö×ÖÉÏ£¬ÄÜ×öµ½ÕâÒ»µã£¬ÄãµÄˮƽ¾Í»áÉÏÒ»¸ǫ̈½×¡£

ËùÒÔÔÚÆ½Ê±µÄ¹¤×÷ÖУ¬ÎÒÃÇÒªÓжԴúÂëµÄTaste£¬ÖªµÀʲôÑùµÄÊǺôúÂ룬ʲôÑùµÄÊÇÔà´úÂ룬¾¡Ôç·¢ÏÖ¿ÉÓÅ»¯¿É¸Ä½øµÄµØ·½£¬³ÖÐø²ú³ö¸ßÖÊÁ¿´úÂ룬¶ø²»ÊÇʵÏÖ¹¦ÄܾÍÍòÊ´󼪣¬·ñÔò³ÙÔçҪΪÄãÒÔǰ͵µÄÀÁÂòµ¥¡£ ÒÔÉϾÍÊÇÎÒÔÚÎÒ˾ÏîÄ¿ÖØ¹¹¹ý³ÌÖеĵÄһЩ×ܽáºÍ·ÖÏí£¬Ë®Æ½ÓÐÏÞ£¬Ï£Íû¶Ô´ó¼ÒÓÐËù°ïÖú¡£

 
   
2467 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì