"Bună, Amigo!"

— Bună, Bilaabo!

"Ești deja un programator solid. Așa că astăzi vom avea o lecție despre MVC."

„MVC înseamnă ModelViewController . Este un model de design arhitectural pentru aplicații mari, în care aplicația este împărțită în trei părți.”

„Prima parte conține toată logica de afaceri a aplicației . Această parte se numește model . Conține codul care face tot ceea ce aplicația a fost creată. Această parte este cea mai puțin dependentă de celelalte.”

„A doua parte conține tot ce ține de afișarea datelor către utilizator . Această parte se numește vizualizare . Conține codul care controlează afișarea ferestrelor, paginilor, mesajelor etc.”

„A treia parte conține codul care procesează acțiunile utilizatorului . Orice acțiuni ale utilizatorului destinate să schimbe modelul ar trebui să fie tratate aici. Această parte se numește Controller   .

„Această abordare vă permite să creați trei lucruri în mod independent:  logica programului (modelul) , mecanismul de afișare a datelor programului către utilizator (vizualizarea) și un handler pentru intrarea/acțiunile utilizatorului (controlerul) ”.

„Aplicațiile au adesea mai multe vizualizări . Acest lucru este normal. Puteți vizualiza exact aceleași date în Excel, atât ca numere, cât și ca diagrame. În jocuri, puteți vizualiza evenimente dintr-o vizualizare la persoana întâi, la persoana a treia sau la hartă, plus multe altele. . Toate acestea sunt vederi diferite pentru un singur model ”.

„Tot codul care decide ce să schimbe în model ca răspuns la acțiunile utilizatorului este adunat în Controller . De exemplu, dacă utilizatorul decide să închidă programul, atunci trebuie să salvați datele modelului pe un fișier de pe disc. Sau dacă utilizatorul introduce date noi, atunci trebuie să le adăugați la model. Modelul va notifica apoi toate vederile despre modificările datelor, astfel încât acestea să afișeze doar starea curentă a datelor."

— Spune asta din nou.

„Din perspectiva unui dezvoltator Java, am putea spune că modelul, vizualizarea și controlerul sunt trei grupuri de clase în care:”

" a)  fiecare parte are propriul scop;"

" b)  relațiile dintre clasele unui singur grup sunt foarte puternice;"

" c)  relațiile dintre grupuri sunt foarte slabe;"

" d)  modurile în care părțile comunică între ele sunt puternic reglementate."

„Și iată un alt mod de a-l imagina:

MVC - 1

„Modelul este cea mai independentă parte a sistemului . Nu depinde de vizualizare sau controler. Modelul nu poate folosi clase din vizualizare sau grupuri de controler(!).”

„Limitarea principală a vizualizării este că nu poate schimba modelul . Clasele de vizualizare pot accesa modelul pentru date sau pentru a se abona la evenimente, dar clasele de vizualizare nu pot schimba modelul.”

„Limitarea principală a controlorului este că nu afișează date . Controlorul procesează acțiunile utilizatorului și modifică modelul în consecință.”

— Dar de ce am nevoie de asta?

„Faptul că nu folosești asta chiar acum, nu înseamnă că nu o vei folosi în viitorul apropiat. Ești aici să studiezi pentru a obține un loc de muncă. Și chiar dacă aceste cunoștințe nu se dovedesc utile în timp ce studiind, cu siguranță va fi util în timp ce lucrezi.”

„La urma urmei, proiecte reale și interviuri încă te așteaptă...”

„Suntem aici să vorbim împreună, dar poate peste o lună vei lucra deja”.

— Ai perfectă dreptate, Bilaabo. O să te ascult cu atenţie.

„Modelul MVC este foarte comun în arhitectura aplicațiilor. Trebuie să-l cunoașteți, astfel încât să nu începeți brusc să adăugați clase de vizualizare la model pentru că vi se pare că acest lucru este mai convenabil.”

„Cel mai important lucru în orice proiect este arhitectura lui.  Sarcina ta în această etapă nu este atât de mult să poți crea o arhitectură bună, cât este să înveți să o înțelegi pe a altcuiva. Va trebui totuși să crești pentru un câțiva ani înainte de a-l crea pe al tău. Dar trebuie să înțelegi ce au creat alții. Imediat.”

„Când o aplicație folosește o arhitectură standard, totul devine mult mai clar. Cunoscând arhitectura, știi unde sunt lucrurile, cum interacționează totul, aproximativ cum funcționează programul, unde să adaugi o clasă necesară și unde să cauți cauza un gândac."

"Dar, dacă nu ești familiarizat cu abordările standard ale arhitecturii, atunci nici cea mai bună arhitectură nu îți va spune nimic. Vei fi ca un țăran din evul mediu care se uită la o mașină nouă. O mașină standard."

— Înțeleg. Mulțumesc pentru lecția interesantă, Bilaabo.

„În sfârșit, iată un link bun pe care cu siguranță ar trebui să îl verificați:”

Link către material suplimentar