Dove si collocano gli oggetti parser e di servizio in MVC?

5

Gli oggetti di servizio NSURLConnection e gli oggetti parser XML / JSON rientrano nel livello controller o nel livello modello? Perché?

È corretto avere una logica aziendale nel controller? O dovrebbe essere solo nel livello del modello?

Il livello del modello può essere rappresentato da oggetti NSArray / NSDictionary o deve essere strettamente strutturato con oggetti personalizzati per rispettare lo schema MVC, dato che la mia app non richiede archiviazione persistente.

    
posta SuperGodSachin 27.12.2012 - 11:09
fonte

3 risposte

4

Tutte le regole aziendali (e l'applicazione) devono trovarsi nel livello del modello dell'applicazione. Il controllore dovrebbe semplicemente raccogliere (dai modelli alle viste) e inviare (dalle richieste URL ai modelli) i dati.

I tuoi modelli possono essere composti in due strati , il business logica (e applicazione) e il livello di accesso ai dati. Il tuo livello di accesso ai dati esegue query (SQL, NoSQL, servizio Web o persino file di testo).

I tuoi modelli non dovrebbero essere "consapevoli" del tipo di storage che stai utilizzando. In questo modo, puoi modificare e combinare diversi meccanismi di accesso ai dati (i tuoi utenti si trovano in un database e il resto dei dati proviene da un servizio web, ad esempio).

Per integrare in modo pulito il tuo livello di accesso ai dati nei tuoi modelli, devi fare affidamento sull'iniezione di dipendenza

    
risposta data 27.12.2012 - 13:08
fonte
0

Non penso che dovresti applicare una regola complessa come quella in cui dovrebbero essere applicati i moduli di servizio. La maggior parte delle volte i servizi sono usati dal modello, ma c'è un po 'di variabilità.

Ad esempio, una vista che carica una risorsa da un URL interagirà con un servizio di rete, oppure un controllore potrebbe utilizzare un servizio parser dopo aver estratto i dati da un modello e aver adattato i dati a una vista.

    
risposta data 27.12.2012 - 21:12
fonte
-1

Il lavoro del controllore dovrebbe essere solo gestire la richiesta, convalidarla e chiamare il componente del modello appropriato per eseguire il lavoro effettivo e una volta che il controllo torna inviare la risposta al client / vista.

Quindi cose come il parsing o qualsiasi actvity / processing che è specifico per il servizio dovrebbero essere fatte a livello di modello.

    
risposta data 27.12.2012 - 16:25
fonte

Leggi altre domande sui tag