Eliminazione di Massive View Controller in iOS?

4

Ho avuto una discussione con il mio collega sul seguente problema.

Abbiamo un'applicazione in cui abbiamo bisogno di funzionalità di filtraggio. In qualsiasi schermata principale all'interno della barra di navigazione superiore, c'è un pulsante nell'angolo in alto a destra. Una volta toccato quel pulsante, apparirà una vista personalizzata come Vista di avviso scritta, dietro una vista di sovrapposizione nera semitrasparente. In questa vista modale, c'è una vista tabella delle opzioni, e puoi sceglierne una esclusivamente. In base alla selezione, una volta chiusa questa vista modale, viene filtrato l'elenco degli elementi nella vista principale. È semplicemente un filtro presentato in modo modale per filtrare la vista della tabella principale. Questo design dell'interfaccia utente è dettato dal dipartimento di progettazione, non posso farci niente, quindi lascia che sia accettato come premessa. Anche il pulsante principale del filtro nella barra di navigazione cambierà i colori per indicare che il filtro è attivo.

La domanda che ho riguarda l'implementazione. Ho suggerito al mio collega di creare una classe XYZFilter separata che

  • essere un'istanza creata dal controller di visualizzazione principale
  • acquisisce le opzioni di filtro
  • gestiscono il salvataggio e il ripristino del suo stato, ovvero l'ultimo filtro selezionato
  • fornisce le sue due viste: la vista di sovrapposizione e la vista modale
  • essere l'origine dati per la tabella nella sua vista modale.

Per qualche ragione sconosciuta, il mio collega non è rimasto affatto colpito da questo approccio. Vuole semplicemente fare queste funzionalità nel controller della vista principale, forse non essendo abituato a farlo in passato in questo modo: - /

C'è qualche problema fondamentale con il mio approccio? Voglio

  • mantieni il controller di visualizzazione piccolo, per non avere il codice spaghetti
  • crea un componente riutilizzabile (da utilizzare all'esterno del progetto)
  • hanno un approccio più disaccordo orientato agli oggetti.
  • previene la duplicazione del codice in quanto abbiamo bisogno del filtro in due luoghi diversi ma sembra uguale in entrambi ..

Qualche consiglio?

    
posta Earl Grey 13.06.2013 - 13:49
fonte

1 risposta

1

Non vedo alcun problema con l'approccio che hai delineato. Il tuo problema è quello di essere in grado di convincere il tuo collega che il tuo approccio è preferibile al loro. Potresti provare:

  • è meno lavoro, poiché lo stesso comportamento di filtraggio è necessario più di una volta in diverse visualizzazioni;
  • è più facile da testare, dato che non devi configurare un controller di visualizzazione e tutte le sue viste solo per testare qualche codice di ricerca.

Penso che l'argomento "componente riutilizzabile" sia prematuro. È più persuasivo concentrarsi sui problemi di riutilizzo che attualmente hanno (cioè le due viste nella stessa app), piuttosto che sul riutilizzo speculativo futuro. Questo può essere deleterio, dal momento che il tuo collega potrebbe pensare che stai promuovendo lavori di doratura inutili per un problema che non sai di avere.

    
risposta data 29.07.2013 - 16:21
fonte

Leggi altre domande sui tag