MVVM: la VM deve essere un tipo di valore?

4

Recentemente sono stato strongmente influenzato da due conferenze: "Boundaries" di Gary Bernhardt ( link ) e "Controlling" di Andy Matuschak Complessità "( link )

Ho anche imparato a conoscere e lavorare con il paradigma MVVM che porta alla mia domanda. Il ViewModel dovrebbe essere un tipo immutabile / di valore? A volte penso di sì, altri no.

Sono colpito dal fatto che ViewModel sia un collegamento tra la shell imperativa e il nucleo funzionale che penso sia ciò che mi confonde. Dovrebbe il collegamento tra questi due essere imperativo o funzionale in natura?

    
posta Daniel T. 13.06.2015 - 20:34
fonte

1 risposta

4

Lo scopo principale di un oggetto modello di vista è di fornire un livello di astrazione tra la vista e il modello, in modo da non dover scrivere spaghetti code-behind. Inserendo la logica View nel proprio oggetto, la si disaccoppia dall'effettiva superficie dell'interfaccia utente e si rende la sua logica verificabile.

Quale sarebbe il punto di un oggetto modello di vista immutabile?

Considera ciò che ottieni con l'immutabilità: sicurezza del thread e capacità di calcolare un risultato idempotente da una composizione di funzione più facile da ragionare di un oggetto mutabile gestito da più agenti.

Alcune di queste condizioni sono presenti in un oggetto Modello di vista? No.

Le interfacce utente sono mutabili per natura; non hai intenzione di dare alle persone una possibilità, e una sola possibilità, di inserire i dati in una casella di testo, vero?

Inoltre, è la natura mutevole del mondo reale che richiede linguaggi puramente funzionali per interagire con il mondo reale attraverso meccanismi come le monadi.

    
risposta data 14.06.2015 - 02:58
fonte

Leggi altre domande sui tag