Come utilizzare ViewModels in un'architettura a livelli?

1

Ho un'applicazione Java che utilizza un'architettura a livelli, abbiamo: livello di presentazione, livello aziendale e livello di accesso ai dati. Il nostro livello aziendale utilizza i modelli per elaborare le "richieste". Stiamo utilizzando il concetto di "ViewModel", quindi ogni relazione View-Action ha la sua View. Quello che sta succedendo è che abbiamo un sacco di ViewModels. Il numero di file è un po 'confuso, ma il vero problema è che ci troviamo di fronte a un problema di conflitto di nomi.

Questo ha sollevato alcune domande:

  1. In questo caso utilizziamo ViewModels in un'architettura a livelli. Questo approccio è OK?
  2. È normale affrontare un numero elevato di file?
  3. Esiste una convenzione di denominazione che usi per chiarire a quale vista "appartiene" il modello?
  4. Se un modello è esattamente lo stesso per due viste, dovrebbero essere condivise o dovrei avere due modelli diversi che hanno esattamente lo stesso contenuto?
posta JSBach 25.08.2014 - 21:06
fonte

1 risposta

1

Sì, è normale avere molti ViewModels e sì, la denominazione e il namespace sono importanti. Nelle mie app, in genere creo una gerarchia di ViewModels per abbinare i miei controller / presentatori e azioni. Ad esempio:

  • Controllers
    • ProductsController
    • OrdersController
  • ViewModels
    • Prodotti
      • ListProductViewModel (presuppone una "lista" Visualizza)
      • EditProductViewModel (presuppone una visualizzazione "modifica")
    • Ordini
      • ShowOrderViewModel
      • CreateOrderViewModel

I ViewModels sono quasi sempre solo strutture dati prive di comportamenti e, in quanto tali, non importa tanto se parte del codice è duplicata. Per me, è molto più semplice per gli altri capire e modificare che se un ViewModel è condiviso su viste / azioni.

    
risposta data 04.09.2014 - 18:54
fonte