Ho un'applicazione basata sulla localizzazione sociale e sono in un conflitto di progettazione che non riesco a risolvere o trovare buone informazioni.
Comprendendo che ho più controller che accederanno in modo simile alla posizione dell'utente e caricherò una serie di punti da visualizzare in una vista tabella, ho creato una classe che ha metodi di classe per fornire agli utenti la posizione (coordinate e / o indirizzo geocodificato inverso) e compilare un NSArray di posizioni di dimensioni variabili e altri metodi che i diversi controller utilizzeranno per formare i propri dati. Chiamalo SpotsManager
.
Anticipando la complessità futura, ho separato SpotManager
s funzioni in 2 classi separate, una SpotLocationManager
per il wrapping di CLLocationManager
e una SpotNetworkManager
per il wrapping di AFNetworking.
Tutti questi manager emanano odore di codice? Sembra eccessivo, soprattutto rispetto alla maggior parte delle app di esempio di Apple, ma allo stesso tempo sembra anche un'organizzazione vantaggiosa.
Per contrastare il mio approccio precedente, ho ramificato e creato una classe SpotsList
che sa come popolare le sue istanze con le posizioni. Ma dubito estendendo questa lezione senza creare qualche classe di Dio. (E [SpotList currentCoordinate]
non suona bene.)
Mi rendo conto che le domande di progettazione di alto livello forniscono un'opportunità di opinioni, quindi sto specificatamente chiedendo risposte che forniscano obiettività e informazioni sul design approvato da Apple.