MVC, MVP, MVVM: quin triar?

MVC, MVP, MVVM: quin triar?

Les aplicacions modernes necessiten tanta varietat de funcions que el procés de desenvolupament ha crescut en mida i complexitat. Per ajudar-vos, podeu utilitzar un patró de disseny arquitectònic. Admeten la creació d'aplicacions fàcils de provar i mantenir.





lloc de pel·lícules gratis sense registre

Els tres patrons de disseny més populars són MVC, MVP i MVVM. El MVC significa model, vista i controlador, mentre que MVP significa model, vista i presentador, i MVVM per model, vista i model de vista.





Patrons arquitectònics i de disseny

Patró arquitectònic

Un patró arquitectònic aclareix i defineix alguns components crucials d'una arquitectura de programari. Tot i que un patró arquitectònic transmet una imatge d'un sistema, no és una arquitectura . De fet, és una solució general i reutilitzable per a un problema habitual en l'arquitectura del programari en un context determinat.





Patró de disseny

Un patró de disseny és una pràctica recomanada formalitzada que podeu utilitzar per resoldre problemes habituals en dissenyar una aplicació o sistema.

La diferència entre el patró arquitectònic i el disseny

Comencem amb el terme comú: patró. Al programari, un patró és una propietat recurrent que us permet descompondre una estructura enorme i complexa en components més petits i més simples. Podeu utilitzar aquest patró per elaborar una solució general per a una classe de problemes.



En cada nivell de desenvolupament de programari, utilitzareu diferents eines. A nivells més petits, aquestes eines són patrons de disseny. Els patrons arquitectònics existeixen a nivells més grans, i paradigmes de programació a nivell d'implementació.

Per què necessitem patrons de disseny arquitectònic?

Durant el desenvolupament de programari, podeu utilitzar patrons de disseny arquitectònic per resoldre problemes comuns. Una bona arquitectura també us pot ajudar a:





  • Dividiu les tasques complexes en tasques més senzilles.
  • Reduir errors.
  • Produïu codi comprovable i mantenible.

Però sense un patró arquitectònic, és possible que tingueu dificultats per mantenir la lògica empresarial de la vostra aplicació.

Model, View, ViewModel, Controller i Presenter

Abans de mirar cada patró, aquí teniu els termes que els componen:





  • Model emmagatzema dades i es comunica directament amb la base de dades. El model és la part que representa les dades i la lògica de l'aplicació. Defineix les regles de negoci que gestionen el maneig, la modificació o el processament de dades.
  • Veure mostra les dades del model i és responsable de la representació de les dades a la interfície d'usuari.
  • ViewModel és exclusiu del patró MVVM. Aquesta és una abstracció de la capa de vista i també actua com a embolcall per a les dades del model.
  • Controlador és el component que integra la vista i el model.
  • Presentador és un component que només existeix en el model MVP. El presentador obté l'entrada del component de vista i processa les dades amb l'ajuda del model.

Patrons MVC, MVP i MVVM

Model-Vista-Patró del controlador

El Patró arquitectònic MVC va ser el primer, i avui és popular en el camp de les aplicacions web. Va ser introduït a la dècada de 1970. Aquest patró us permet crear una aplicació al voltant de la separació de preocupacions (SoC). Facilita l'esforç que necessiteu per provar, mantenir i desenvolupar la vostra aplicació.

En el patró MVC, el model no entén la vista ni el controlador. L'observador del model rebrà una alerta sempre que hi hagi un canvi en la vista i el controlador. El controlador ajuda el procés d'encaminament a connectar el model a la vista corresponent.

Alguns dels avantatges del patró MVC són:

  • Separació de preocupacions (més centrada).
  • Facilita la prova i la gestió del codi.
  • Afavoreix el desacoblament de les capes de l'aplicació.
  • Millor organització i reutilització del codi.

Així és com funciona MVC:

  Imatge d'un diagrama que il·lustra com funciona MVC

A causa del SoC, MVC pot reduir la mida del codi i fer un bon codi net i manejable.

Model-Vista-Presentador Patró

El patró MVP comparteix dos components amb MVC: model i vista. Substitueix el controlador pel presentador. El presentador —com el seu nom indica— s'utilitza per presentar alguna cosa. Et permet burlar-te de la vista més fàcilment.

A MVP, el presentador té la funcionalitat del 'intermediari' perquè tota la lògica de presentació s'hi empès. La vista i el presentador a MVP també són independents l'un de l'altre i interactuen mitjançant una interfície.

Aquí teniu una il·lustració de com funciona el patró MVP:

  Imatge d'un diagrama que il·lustra com funciona MVP

El presentador rep informació de l'usuari a través de la vista. A continuació, processa les accions de l'usuari amb l'ajuda del model, tornant els resultats a la vista. El presentador es comunica amb la vista mitjançant interfícies.

Model-Vista-Vista Model Patró

MVVM és l'evolució moderna de MVC. L'objectiu principal de MVVM és proporcionar una separació clara entre la lògica del domini i la capa de presentació. MVVM admet l'enllaç de dades bidireccional entre la vista i el model de vista.

El patró MVVM us permet separar la vista i el model del vostre codi. Això vol dir que quan el model canvia la vista no cal, i viceversa. Amb un model de vista, podeu fer proves d'unitat i provar el vostre comportament lògic sense implicar la vostra vista.

Aquí teniu una il·lustració de com funciona MVVM:

  Imatge d'un diagrama que il·lustra com funciona MVVM

Quan utilitzar MVC, MVP i MVVM

Ara que heu après sobre cada patró, descobriu quan utilitzar-los.

Quan utilitzar MVC

MVC és simplement una implementació de Separation of Concerns. Si la vostra aplicació necessita separar les dades (model), l'anàlisi de dades (controlador) i la presentació de dades (visualització), MVC funcionarà bé. MVC també funciona bé en una aplicació on la font de dades i/o la presentació de dades poden canviar en qualsevol moment.

Quan utilitzar MVP

Podeu utilitzar MVP quan la vostra aplicació tingui un flux bidireccional. Si les interaccions de l'usuari necessiten sol·licitar alguna cosa al model i el resultat d'aquesta sol·licitud canviarà la interfície d'usuari immediatament, considereu MVP.

Quan utilitzar MVVM

Voleu utilitzar MVVM quan:

  • Heu de compartir un projecte amb un dissenyador i el treball de disseny i desenvolupament es pot fer de manera independent.
  • Necessiteu proves unitàries per a les vostres solucions.
  • Heu de tenir components reutilitzables, tant dins com entre projectes de la vostra organització.
  • Voleu més flexibilitat per canviar les vostres vistes sense haver de refactoritzar una altra lògica a la base de codi.

Quin patró hauríeu de triar?

La raó principal per utilitzar un patró de disseny és reduir la complexitat. Podeu fer-ho reduint la complexitat general o substituint la complexitat desconeguda per la familiar. Si un patró de disseny no pot reduir la complexitat en cap d'aquestes dues maneres, no n'utilitzeu cap; no aportarà cap valor afegit.

Si realment esteu segur que hauríeu d'utilitzar un patró de disseny, proveu de fer una llista de verificació. Baseu-lo en les situacions que heu vist aquí i trieu el que millor s'adapti al vostre projecte.