Visualizza le migliori pratiche della struttura del modello

3

Qual è la convenzione preferita per strutturare le proprietà del modello di viste? È meglio usare nomi di proprietà generici o più specifici?

Diamo un utente, la pagina in cui verrà visualizzato questo utente dovrebbe essere modificata dal permesso dell'utente. Il modello di visualizzazione può essere scritto in due modi diversi:

{
    userName,
    userEmail,
    isAdmin // show/hide controls according the value of this property
}

o

{
    userName,
    userEmail,
    enableDeleteBtn, 
    showLogData,
    // many more show/enable properties which are set according user's permissions
}

Il primo approccio sembra più piccolo e più facile da scrivere, ma è meno generico e la logica di visualizzazione / occultamento dei controlli deve essere cambiata se per esempio verrà introdotto un nuovo tipo di ruolo utente.

    
posta Marian Ban 12.09.2014 - 12:36
fonte

2 risposte

3

Se un ruolo utente, come ad esempio l'amministratore, è autorizzato a vedere alcuni dati (come i registri) è una regola aziendale.

Le regole aziendali appartengono al modello di dominio.

I valori di mostrare / abilitare le proprietà calcolate all'interno del modello di dominio devono farlo in qualche modo alla vista.

Un viewmodel è un oggetto progettato proprio per questo. Conterrà valori precalcolati per cose e decisioni che non dovrebbero essere calcolate nel livello di presentazione.

    
risposta data 12.09.2014 - 17:16
fonte
2

Preferisco il primo. Altrimenti stai legando il tuo modello di vista all'implementazione della tua vista, es. mettendo la logica di visualizzazione, che dovrebbe vivere nella tua vista nel tuo modello di vista.

Anche il primo mostra perché il pulsante Elimina è abilitato, ad es. è nella lingua del dominio. Se guardi la vista e devi passare e rintracciare perché è abilitata da qualche altra parte, allora hai una brutta astrazione.

    
risposta data 12.09.2014 - 14:06
fonte

Leggi altre domande sui tag