Modello di dominio vs modello di presentazione e funzione generale

3

Ho creato un'app per la mia azienda, mi unisco per il passato > 1 anno, stiamo usando

  • Java
  • Primavera
  • Sospensione
  • JavaScript
  • jQuery
  • UI di Kendo

E per la struttura posso dire qualcosa di simile da Backend a Frontend:

Backend (pojo > dao > bo > service > web service) > UI ( model, view model, html/view)

Beh, credo di sapere come codificarli tutti, ma poi oggi il mio senior mi ha chiesto questo e non posso dire una parola jeez ho bisogno di sapere più del concetto. Mi ha chiesto questo

Che modello di presentazione è, in che modo si differenzia dal modello di dominio e dalla sua funzione generale? Sto cercando ore per combinare l'articolo con l'articolo, ma mi ha confuso di più. Qualcuno può spiegare con "spiegazione facile su questo"? e anche pojo = modello di dominio in java, quindi visualizza model = presentation model in MVVM?

    
posta himawan_r 05.10.2015 - 12:05
fonte

1 risposta

5

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.

Modello di presentazione di Martin Fowler

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.

    
risposta data 05.10.2015 - 16:24
fonte

Leggi altre domande sui tag