0% found this document useful (0 votes)
21 views

MVC AND MVVM Pattern in Swift

The document compares the MVC and MVVM architectural patterns. MVC separates an application into three components - Model, View, and Controller. MVVM introduces an additional View Model layer between the Model and View. This separates business logic from the View. The View Model acts as a mediator between the Model and View, preparing the model for display. MVVM reduces complexity in the Controller and improves testability by moving business logic to the View Model. The key advantages of MVVM are clearer separation of concerns, reusability, improved testability and scalability compared to MVC.

Uploaded by

Emilian Lp
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

MVC AND MVVM Pattern in Swift

The document compares the MVC and MVVM architectural patterns. MVC separates an application into three components - Model, View, and Controller. MVVM introduces an additional View Model layer between the Model and View. This separates business logic from the View. The View Model acts as a mediator between the Model and View, preparing the model for display. MVVM reduces complexity in the Controller and improves testability by moving business logic to the View Model. The key advantages of MVVM are clearer separation of concerns, reusability, improved testability and scalability compared to MVC.

Uploaded by

Emilian Lp
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

MVC înseamnă Model-View-Controller – un MVVM înseamnă Model-View-View Model.

La
model arhitectural care separă o aplicație în trei fel ca MVC, acest model separă datele și interfața
componente logice principale, fiecare dintre în componentele model și vizualizare. În timp ce
acestea fiind atribuită să gestioneze aspecte controlerul este prezent în ambele modele, în
specifice ale aplicației. MVVM, responsabilitățile sale sunt reduse. Codul
logic de business care este separat își găsește
locul într-o nouă componentă – View Model.

Model MVC Model MVVM

În primul rând, să aruncăm o privire la cele trei Pentru a rezolva problemele menționate mai sus,
straturi care organizează codul în modelul Model- MVVM introduce un strat suplimentar în
View-Controller: configurarea MVC. Se numește View Model și
înlocuiește C cu VM în MVVM (chiar dacă
• Model – este responsabil pentru stocarea controlerele sunt încă prezente în acest
datelor, dar nu trebuie să le manipuleze model). Vă rugăm să rețineți că modelul și
pentru nevoile Vizualizării, deoarece nu vizualizarea au aceleași responsabilități ca și în
este conștient în niciun fel de Vedere. MVC.

• Vizualizare – are două responsabilități: • Model – este responsabil pentru


are grijă de prezentarea datelor stocarea datelor, dar nu ar trebui să le
utilizatorului și primește acțiunile făcute manipuleze pentru nevoile vizualizării,
de utilizator. Nu cunoaște în niciun fel deoarece nu este în niciun fel conștient
Modelul – este actualizat cu datele de vizualizare.
prelucrate de către proprietarul său. Din
cauza acestei caracteristici, View ar trebui • Vizualizare – are doar două
să fie lipsit de orice logică de afaceri. responsabilități: are grijă de prezentarea
datelor utilizatorului și primește acțiunile
• Controller – deține și comunică cu efectuate de utilizator. Nu cunoaște în
straturile View și Model. Este responsabil niciun fel
pentru actualizarea Modelului și
Vizualizării cu datele procesate din • Modelul – este actualizat cu datele
Model. În cea mai simplă configurare, prelucrate de către proprietarul său. Din
controlerul este de obicei setat ca delegat cauza acestei caracteristici, View ar trebui
la vizualizare sau setează apeluri să fie lipsit de orice logică de afaceri.
corespunzătoare pentru ca vizualizarea să
poată actualiza modelul și vizualizarea pe • Vizualizare model – este un nou strat
baza acțiunilor utilizatorului. între model și controler. Deține Modelul
și are grijă să-și manipuleze datele într-un
mod care să-l facă gata pentru a fi afișat
printr-o vizualizare simplificată.

• Controller – își păstrează


responsabilitățile de înființare și
coordonare a componentelor pe care le
deține. Rolul controlerului este simplificat
în comparație cu MVC, deoarece logica
de afaceri legată de manipularea datelor
modelului este mutată în stratul View
Model. A doua diferență este că deține
View Model în loc să dețină Model direct.

Avantajele MVC Avantajele MVVM

Modelul de design MVC oferă următoarele Având în vedere introducerea stratului View
avantaje: Model, iată avantajele modelului MVVM.

• Simplitate și ușurință în • Separarea clară a preocupărilor. Este


utilizare. Datorită numărului mic de evident ce ar trebui să facă parte din
componente definite simplu, este greu de View sau Model.
găsit un model care ar fi mai simplu de
introdus și întreținut decât MVC. • Reutilizabilitate. Nici View, nici Model nu
sunt strâns cuplate cu alte componente,
• Separarea clară a preocupărilor. Este ceea ce face ușoară reutilizarea acestora.
evident ce ar trebui să facă parte fie din
Vedere, fie din Model. • Popularitate. În lumea iOS, MVVM este
un model mai nou decât MVC. Chiar și
• Reutilizabilitate. Atât View, cât și așa, a devenit frecvent utilizat în ultimii
Model nu sunt strâns cuplate cu alte ani și multe resurse de învățare sunt la
componente, așa că este ușor să le îndemână.
reutilizați.
• Testabilitate îmbunătățită. Spre
• Resurse vaste de învățare. Este unul deosebire de MVC, logica de afaceri este
dintre cele mai comune modele. A fost mutată în modelul de vizualizare, ceea ce
cel mai des folosit în primele zile ale facilitează testarea prin batjocură de
dezvoltării iOS. datele modelului și verificând
proprietățile și metodele modelului de
vizualizare.
Dezavantaje MVC
• Scalabilitate îmbunătățită și
• Controller-ul este un fel de obiect catch- complexitate redusă. MVVM crește
all aici. Dacă o anumită sarcină nu scalabilitatea, ceea ce înseamnă că –
aparține Vederii sau Modelului, de obicei odată cu dimensiunea în creștere a
ajunge să fie implementată în Controller, aplicației, precum și cu numărul de
făcându-l să devină un obiect mare și caracteristici și fluxuri de utilizatori –
complex. Această problemă este adesea complexitatea structurii sale interne
denumită Massive View Controller sau rămâne la un nivel rezonabil mai mult
Fat View Controller. decât în modelul MVC. Acest lucru este
valabil mai ales când se ține cont de
• Pentru a asigura calitatea codului, cel flexibilitatea în alegerea modului de
puțin logica de afaceri ar trebui acoperită comunicare cu Modelul de vizualizare, în
cu teste unitare. În acest model, această funcție de caz putem folosi modelul
logică este plasată în Delegate, legături sau callback-uri.
Această scalabilitate ar putea fi crescută
• Controller – un obiect complicat strâns și mai mult prin introducerea
cuplat atât cu View, cât și cu coordonatorilor pentru a extrage logica
Model. Acesta este motivul pentru care de navigare a aplicației din Controlere.
este foarte greu să scrii teste adecvate. Am numi apoi acest nou model MVVM-C.

You might also like