L’objectiu del desenvolupament de programari és crear solucions que atenguin les necessitats i preocupacions dels usuaris i empreses. Per aconseguir-ho, s’utilitzen diverses tecnologies i patrons arquitectònics com Model-View-ViewModel (MVVM) i Model-View-Presenter (MVP).

Com en qualsevol producció, la primera fase és la fase de planificació i disseny. El procés de disseny de programari pot ser una especificació basada en les eines tecnològiques preferides i pot incloure actualitzacions i canvis des del concepte a la planificació - implementació.

Cobreix el disseny arquitectònic de baix i alt nivell basat en patrons arquitectònics seleccionats i proporciona un mapa de solucions reutilitzables mitjançant patrons de disseny.

L’estructura del programari

L’arquitectura de programari defineix l’estructura de programari que compleix els requisits tècnics, operatius i d’usuaris i com organitzar i gestionar el codi.

L’elecció d’una arquitectura de programari és important perquè no és una part fàcil i variable d’un programari ja desenvolupat; per tant, és necessari decidir sobre un patró arquitectònic abans de començar qualsevol programació.

Els patrons d’arquitectura són lleugerament diferents amb els patrons de disseny, ja que el seu àmbit és més ampli tractant problemes més tècnics com ara el rendiment i les limitacions del maquinari, així com la disponibilitat. Exemples de diferents patrons arquitectònics són MVC, MVVM i MVP.

D'altra banda, els patrons de disseny formalitzen les bones pràctiques que faciliten el desenvolupament orientat a reobjectes i són més fàcils de mantenir i canviar que l'arquitectura d'aplicacions d'aplicacions.

Patrons arquitectònics

Model View Controller (MVC) és un dels primers dissenys arquitectònics creats per a aplicacions web i ha guanyat popularitat des de mitjan anys noranta, especialment a la comunitat Java.

Els nous marcs de python i rails, com Django (Ruby on Rails), estan centrats en un desplegament ràpid, de manera que MVC guanya quota de mercat com un atractiu principal dels patrons arquitectònics.

Tradicionalment, el desenvolupament de la interfície d’usuari implica molts codis per processar la lògica complexa, de manera que els patrons arquitectònics poden reduir el codi a nivell d’interfície d’usuari (IU) i fer-lo més refinat i manejable. previst.

Així, es va crear una aplicació web amb el patró MVC


  • Model (dades) Vista (interfície per visualitzar i gestionar dades) Controlador (accions i accions de dades)

El model processa dades i lògica comercial i no té cap relació entre Model i Controlador o Vista.

La vista proporciona a l'usuari dades en un format compatible i en l'ordre adequat, i quan el controlador rep les sol·licituds de l'usuari (per recuperar-ne les dades), invoca els recursos adequats necessaris per completar la sol·licitud.

Utilitzem aquest patró per crear una llibreria en línia.

Els usuaris poden cercar, veure, registrar i comprar llibres així com gestionar els seus perfils i llistes de llibres. Quan un usuari fa clic a la categoria SCI-FI, tots els llibres rellevants s'han de mostrar quan estiguin disponibles.

Els gestors fan accions per gestionar els llibres (llista, afegir, visualitzar, etc.). Un controlador principal de trànsit pot tenir "encaminament del trànsit".

Per aquest exemple, controller_books.php, anomenat Controller i Model (per exemple, model_books.php) gestionen informació i lògica relacionada amb els llibres.

Finalment, calen vistes diferents, com ara quan afegiu un llibre a una targeta en línia o visualitzeu els detalls del llibre amb imatges i comentaris.

Controller_books.php recupera l'acció (sol·licitud de l'usuari) del gestor principal (per exemple, index.php). Controller_books.php analitza la consulta i truca model_books.php (dades) per retornar una llista de llibres SCI-FI.

La responsabilitat del model és proporcionar aquesta informació mitjançant la lògica utilitzada (mitjançant filtres de cerca). El controlador després rep les dades i les transmet a la vista adequada (vista de cerca, vista d'impressió, vista de detalls, etc.) i la informació es proporciona a l'usuari que va iniciar la sol·licitud (mitjançant Vista).

Aquesta és la base del patró MVC, que ha provocat un canvi suau en els patrons arquitectònics com Model-View-Presenter (MVP), Model-View-ViewModel (MVVM), Jerarquic-Model-View-Controller (HMVC). i Model-View-Adapter (MVA).

Diferència entre MVVM i MVP

Model-View-Presenter (MVP)

El patró MVP ja fa temps que és al voltant i és una opció MVC. Està dissenyat per automatitzar proves específiques, on l’objectiu és augmentar la quantitat de codi que es pot provar mitjançant automatització, i el patró separa la lògica empresarial de la interfície d’interès per solucionar alguns problemes de presentació. .

La pantalla és Visualitzar, les dades que es mostren són Model i el presentador en connecta les dues.

La MVP conté els components següents amb responsabilitats específiques:

  • Model (especifica les dades mostrades) Vista (Mostra les dades del model i redirigeix ​​les sol·licituds dels usuaris al Proveïdor). Presentador (interactua entre la vista i el model i els uneix)

Vista (pàgina web) Mostra i gestiona la gestió de pàgines enviant esdeveniments (sol·licituds de l'usuari) al presentador que ha començat a Visualitzar.

El Presentador respon a aquests esdeveniments llegint i actualitzant el Model per canviar la Vista i, per tant, el Proveïdor té l’obligació d’enllaçar el Model i la Vista.

Després de revisar els patrons MVC i MVP, la normalitat és responsabilitat individual dels dos components, la qual cosa permet dividir-los entre Vista (interfície d'interès) i model (dades). Les diferències significatives entre aquests patrons són més evidents en la manera d'implementar els patrons.

MVP pot ser un patró complicat per implementar solucions avançades, però si es posa en pràctica com a solució ben dissenyada, en beneficiarà, però no ha de ser una elecció adequada per a solucions simples.

Diferència entre MVVM i MVP-1

Model-View-ViewModel (MVVM)

El model MVVM es va crear específicament per a les plataformes Windows Presentation Funds (WPF) i Microsoft Silverlight i es pot utilitzar en totes les plataformes XAML [i].

WPF és un sistema Microsoft que proporciona interfícies d’usuari en aplicacions basades en Windows, llançat per primera vegada a .NET Framework 3.0.

MVVM s'ha actualitzat des de MVC i en aquest mode View està actiu amb enllaçar accions, esdeveniments i dades i es sincronitza amb View ViewModel (això permet separar la presentació i revelar mètodes i comandes de gestió i gestió de models).

El MVVM consta de tres components principals:


  • Model (mostra informació amb validació i lògica comercial) Vista (Vista és responsable de definir l'estructura, la disposició i l'aparença del que un usuari veu a la pantalla). darrere no està disponible per a business logic.tw) - Enllaç entre View i ViewModel per mostrar visualitzacions que sincronitzaran Model i ViewModel amb View) ViewModel (Vista Vista des del model i Gestió de dades) Model i model).

View accepta dades de ViewModel (mitjançant enllaços i mètodes de dades) i Visualització canvia quan respon a esdeveniments de ViewModel.

ViewModel media entre View i Model i gestiona la lògica de View. Interacciona amb Model: obté dades del model i les presenta per visualitzar-les.

Tots aquests components estan separats de manera individual, permetent-los treballar de manera independent, provar els dispositius i substituir-los sense afectar altres components.

Aquesta estructura permet que el Model i altres components es desenvolupin de forma independent, permetent als desenvolupadors treballar simultàniament en diversos aspectes de la solució. Per exemple, quan els dissenyadors treballen a View, creen mostres de dades sense haver d’accedir a altres parts. Com que la navegació es realitza en XAML, és més fàcil redissenyar la interfície d'usuari.

Com s'ha esmentat en el MVP anterior, les solucions simples no requereixen patrons d'arquitectura i disseny, com ara "Hello World!" És molt senzill seguir qualsevol patró; tanmateix, amb la introducció de més funcions, funcions i components, la complexitat del programa augmenta i la quantitat de codi a gestionar augmenta.

Resum; al final

Des del desenvolupament de la interfície d’usuari, els processos de disseny s’han tornat cada cop més populars, els processos de disseny es simplifiquen, les aplicacions són més àmplies i fàcils de provar.

Diferència visual entre els patrons MVP i MVVM:

  • Tant en MVPs com en MVVM, View és el punt d’entrada A MVP, hi ha un mapeig d’un en un entre View i Presenter, on a MVVM les interaccions entre View i ViewModel són moltes. MVP s'utilitza principalment per a aplicacions Windows Forms i Windows Phone, i MVVM està dissenyat per a Silverlight, WPF, Knockout / AngularJS i molt més.
Patrons MVP i MVVM

Referències

  • https://msdn.microsoft.com/en-us/library/cc295302.aspx
  • https://commons.wikimedia.org/wiki/File: MVVMPattern.png
  • https://stackoverflow.com/questions/5551259/mvc-question-direct-modell-view-communication-why
  • https://sureshkumarveluswamy.files.wordpress.com/2010/07/mvp-and-mvvm.jpg
  • https://sureshkumarveluswamy.files.wordpress.com/2010/07/mvp-and-mvvm.jpg