Modello di dominio
Il modello di dominio è una raccolta di classi senza codice di presentazione specifico. Basti pensare a una lista pura di clienti. Inoltre, si può aggiungere la logica Buissnes nel modello di dominio: codice per modificare / modificare il modello.
Come descrive Fowler:
The essence of a Presentation Model is of a fully self-contained class that represents all the data and behavior of the UI window, but without any of the controls used to render that UI on the screen. A view then simply projects the state of the presentation model onto the glass.
Mentre leggi, il modello di dominio e il modello di presentazione sono completamente diversi. Se il dominio è fuori dalla lista dei clienti abbiamo bisogno di una bella GUI per visualizzare questo elenco. Arriva il modello di presentazione e definisce le classi che contengono lo stato di tutti gli elementi nella GUI.
POJO (Plain-old-Java-Object)
Un POJO è una classe in Java che estende solo Object
. niente di più.
class Foo { // this is a POJO
}
class Foo implements Bar { // this is also a POJO
}
class Foo extends Baz { // this is *not* a POJO
}
MVVM (Model-View-ViewModel)
Il modello di presentazione è leggermente diverso da MVVM. Il termine modello è il modello di dominio. La vista contiene tutti gli elementi della GUI. ViewModel contiene solo la rappresentazione corretta dei dati e include un'associazione dati. Questo modello richiede l'uso di qualsiasi tipo di legame mentre il modello di presentazione non lo fa. (Fowler ha dichiarato di avere dati vincolanti ma non dice in quale classe)
Come possiamo leggere in questo articolo MVVM arriva dopo modello di presentazione e penso che dovremmo usare MVPVM. in MVVM il ViewModel contiene la logica per present e la logica per creare la rappresentazione dei dati che viola il Principio della singola responsabilità. Se creiamo un presentatore e inseriamo la logica della presentazione in quella classe, la violazione è scomparsa. Quindi penso che MVPVM sia compatibile con SOLID-Design.