Questa interpretazione dovrebbe avvenire nel controller o nel modello?

3

Immagina un'applicazione in cui l'utente è autorizzato a creare le proprie scale musicali. L'utente seleziona le note da un elenco, le organizza in un gruppo e preme un pulsante per creare la scala.

In una struttura MVC, premendo il pulsante, la vista indica al controller "l'utente desidera creare una nuova scala, ecco i nomi delle note" (passando una serie di stringhe).

Questi nomi devono essere interpretati negli oggetti Note corrispondenti, prima che siano composti in un nuovo Scale .

La domanda è, se questa interpretazione dovesse avvenire nel controller, prima di passare una matrice Note s al modello in cui si verificherà la creazione di Scale ? Oppure il controller deve solo passare l'array di stringhe (che rappresentano i nomi delle note) insieme al modello, dove il modello interpreterà i nomi in Note s e comporrà Note s in Scale ?

Quale sarebbe più concettualmente corretto, secondo l'idea di MVC?

    
posta Aviv Cohn 14.09.2014 - 15:21
fonte

1 risposta

5

Interpretazioni come quella di una stringa che rappresenta una nota per un oggetto nota è la vera ragione per un controller, e quindi dovrebbe essere collocato lì.
L'idea alla base del pattern Model-View-Control è di mantenere un modello di dominio libero da dettagli di sistema. Questa separazione delle preoccupazioni consente al modello di concentrarsi solo sul dominio e lasciare che i componenti circostanti colleghino il modello con il resto del sistema. La responsabilità della vista è di tradurre il modello in una rappresentazione visiva, e la responsabilità del controllore è di tradurre l'input dell'utente (o del sistema) nella lingua del dominio.

    
risposta data 14.09.2014 - 16:10
fonte

Leggi altre domande sui tag