Come disaccoppiare gli stati dell'interfaccia utente?

2

Ho scritto un nuovo servizio Todo lucido con il mio framework front-end e back-end preferito. Per ridurre al minimo l'accoppiamento, restituisco i dati in un formato standard come JSON o Protobuf e lascia che sia il cliente a interpretarlo e visualizzarlo in un modo che ritenga adatto.

L'utente può selezionare più elementi che sulla selezione dovrebbero mostrare diverse UI rispetto all'elemento normale, può essere fatto aggiungendo il campo selected agli oggetti non appena li ricevo sul client, impostandoli inizialmente su falso . Ma in seguito avrei bisogno di sincronizzare lo stato dell'applicazione con il server e non vorrei inviare i dati originali con l'attributo selected , quindi prima di inviarlo al server, devo rimuovere l'attributo selected dagli oggetti.

Poiché, javascript nella mia attuale scelta per gestire il codice front-end, sembra piuttosto semplice aggiungere o rimuovere campi al volo. Ma supponiamo di dover aggiungere altri 10 stati al mio front-end, quindi devo fare Aumentare il mio modello originale ancora e ancora.

Devo sapere che questo è l'approccio corretto per affrontare una situazione del genere?

    
posta CodeYogi 15.04.2016 - 13:36
fonte

1 risposta

2

Penso che la radice del tuo problema sia che non stai usando i pattern compositivi correttamente. Invece di modificare il modello di questi elementi, crea un NUOVO modello che contiene questi elementi. In questo modo vengono preservate l'identità e la composizione originali di questi oggetti.

Questo articolo fornisce un aspetto abbastanza equilibrato del problema (anche se si tratta di Java): link non è esattamente appropriato come riferimento, in quanto si tratta di ereditarietà basata sulla classe, e dovrai fare qualche giocoleria concettuale per arrivare all'eredità prototipica, ma i suoi principi sono sani.

    
risposta data 15.04.2016 - 14:30
fonte

Leggi altre domande sui tag