Di recente ho deciso di iniziare a studiare lo sviluppo di iOS e, a tal fine, ho letto la programmazione per iOS: The Big Nerd Ranch Guide . Nel libro gli autori descrivono un modello di progettazione MVCS - Model-View-Controller-Store , l'idea di base è che poiché molte applicazioni fanno uso di più fonti esterne di dati mantenendo la logica di richiesta nel controller può diventare molto confusa, invece gli autori propone di spostare tutta la logica di richiesta fuori dal controller e in un oggetto separato.
In breve, per citare il libro
Model-View-Controller-Store inserisce la logica di richiesta in un oggetto separato e chiamiamo questo oggetto un archivio (Figura 28.4). L'uso di un oggetto store minimizza il codice ridondante e semplifica il codice che recupera e salva i dati. Ancora più importante, sposta la logica per trattare con una fonte esterna in una classe ordinata con un obiettivo chiaro e mirato. Ciò semplifica la comprensione del codice, facilita la gestione e il debug, nonché la condivisione con altri programmatori del tuo team.
E
La cosa interessante degli archivi asincroni è che anche se molti oggetti stanno facendo molto lavoro per elaborare una richiesta, il flusso della richiesta e la sua risposta sono in un posto nel controller. Questo ci dà il vantaggio di un codice facile da leggere e anche facile da modificare.
Volevo saperne di più su questo schema e vedere cosa avrebbero potuto dire gli altri al riguardo, ma durante la ricerca online gli unici riferimenti che ho potuto trovare erano sullo stesso libro (lo schema è forse conosciuto con qualche altro nome?).
Per me la logica dell'autore sembra avere senso e sembra un'estensione logica del modello MVC normale, ma forse è perché non ho molta esperienza con il modello MVC in pratica (a parte l'incursione nello sviluppo di iOS che ho sorta di MVV usato con backbone.js (cioè se lo consideri MVC )).
Speravo che forse qualcuno con più esperienza potesse far luce sul fatto che ci siano evidenti difetti / problemi con il modello MVCS che mi manca.