Modelele de proiectare fac codul aplicației mai modular și iertător atunci când vine vorba de corecții și modificări ale erorilor. În acest articol, veți învăța despre MVC (Model-View-Controller) și modelele de design MVVM (Model-View-ViewModel).
Deși modelele de design (cunoscute și ca modele arhitecturale) sunt esențiale pentru dezvoltarea aplicațiilor scalabile Cocoa Touch, există o mulțime de controverse în jurul căreia modelul arhitectural este de fapt cel mai bun pentru utilizarea în aplicația dvs..
Verificați aceste postări recente de către Bart Jacobs pe MVC și MVVM pentru mai multe perspective asupra acestor modele de design și a alegerii dintre ele.
Colectarea de obiecte ale unui anumit model [arhitectural] într-o aplicație este uneori menționată ca un strat - de exemplu, stratul de model. - Măr
Fără alte detalii, să aruncăm o privire asupra câtorva modele de design pe care le puteți utiliza în următoarea aplicație.
Acesta este modelul cel mai frecvent utilizat în dezvoltarea Cocoa Touch, și este, de asemenea, favoritul meu personal. Acest model de design îți sortează în mod eficient și eficient codul în trei categorii (sau straturi): modelul, vizualizarea și controlerul.
Cu acest model de design, puteți efectua modificări la un singur strat fără a afecta celelalte straturi ale modelului. De exemplu, dacă trebuie să schimbați baza de date, tocmai ați elimina modelul și îl înlocuiți fără a trebui să editați vizualizarea sau controlerul. Sau dacă doriți să schimbați modul în care arată o vizualizare, nu trebuie să vă faceți griji în legătură cu codul bazei de date. Aceasta se numește "separarea preocupărilor" și face codul dvs. mai ușor de depanat, de întreținut și de reutilizat.
În plus, acesta este modelul de design care este recomandat de Apple în sine, și este o normă în comunitatea de dezvoltare iOS. Dacă tocmai începeți, vă recomand să vă lipiți de acest model. Puteți încerca diferite modele de design mai târziu în cariera dvs. de dezvoltare a cacao.
Să aruncăm o privire mai atentă la diferitele straturi din acest model și pentru ce este responsabil fiecare dintre ele. Iată o diagramă rapidă a interacțiunilor dintre straturi:
Modelul de proiectare MVC separă fiecare parte a codului dvs. într-una din cele trei părți: modelul, vizualizarea și controlerul.
Un lucru pe care trebuie să-l țineți minte este că nu ar trebui să vă grăbiți prea multe responsabilități în oricare dintre aceste straturi, deoarece acest lucru ar învinge scopul de a avea un model de design!
De asemenea, dacă nu țineți conexiunile între straturi curat și clar, veți termina cu o aplicație dezordonată și nefolositoare, în ciuda faptului că utilizați modelul de design MVC! În special, asigurați-vă că nu face permiteți vizualizarea și modelul să comunice direct. Aceste interacțiuni trebuie să se realizeze numai prin controler.
Cu toate că modelul de design-View-Controller este destul de comun și ar trebui să funcționeze în majoritatea cazurilor, acesta are propriul set de provocări și dezavantaje. Din acest motiv, avem un alt model de design numit MVVM, care reprezintă Model-View-ViewModel.
Există o problemă majoră pe care ar trebui să o cunoști. După cum ați văzut în secțiunea anterioară, stratul Controller este singurul strat dintre vizualizare și model, deci nu este surprinzător faptul că oamenii abuzează acest strat și îi dau repede prea multe lucruri de făcut. Acest lucru ar putea părea ca cel mai simplu lucru de făcut la acea dată, deoarece evită schimbarea celorlalte straturi, dar în cele din urmă duce la un controler umflat și un cod greu de întreținut.
Acest lucru a determinat ca MVC să primească porecla capricioasă "Massive-View-Controller" în unele cercuri.
Modelul arhitectural MVVM, care a fost împrumutat de dezvoltatorii de cocoa de la Microsoft, poate ajuta la combaterea acestei probleme a controlorilor de vizualizare masivi. Deși nu este atât de comun în dezvoltarea iOS ca MVC, este din ce în ce mai mult folosit pentru a compensa deficiențele MVC.
Să aruncăm o privire asupra diferitelor straturi și a responsabilităților lor în MVVM. (Probabil ar trebui să rețineți că în comunitatea de cacao nu există orientări formale privind utilizarea acestor straturi.)
Iată o diagramă rapidă care demonstrează straturile acestui model arhitectural și legăturile lor una cu cealaltă.
Dacă vă gândiți la asta, veți vedea că, deși vederile și controlorii sunt straturi separate în modelul de design MVC, ele sunt foarte strâns legate. Astfel, în MVVM, luăm pur și simplu Vizualizarea și Controlorul și le combinăm într-un singur strat.
Să comparăm fiecare strat cu omologul său în modelul MVC.
După cum ați văzut anterior, nu trebuie să amestecați responsabilitățile niciunuia dintre aceste straturi, deoarece acest lucru poate determina codul aplicației dvs. să fie spiralat în complexitate, făcând ca utilizarea oricăror modele de design redundante.
Sper că v-ați bucurat să aflați mai multe despre aceste modele fundamentale de design pentru iOS. Sperăm că ați câștigat o mai bună înțelegere a modelelor de design MVC și MVVM și sunteți suficient de încrezători să le folosiți în aplicațiile viitoare.
Desigur, modelul arhitectural pe care îl utilizați pentru aplicația dvs. este total dependent de dvs. și depinde de tipul de aplicație pe care încercați să o dezvoltați. Cu toate acestea, dacă sunteți nou în dezvoltarea iOS, eu tot recomandăm să vă lipiți de modelul de design MVC deoarece este încă cea mai importantă din dezvoltarea cacao.
În timp ce sunteți aici, asigurați-vă că ați verificat câteva dintre celelalte tutoriale și articole despre Envato Tuts+!