Sto sviluppando un'app per iOS. Nel tentativo di evitare il puro MVC in cui tutto è impacchettato nel "Controller", ho aggiunto un livello Presenter e un Livello applicazione. Nel fare ciò ho trovato alcune domande che ho bisogno di chiarire per fare le cose nel modo giusto. Le domande sono di tipo concettuale, quindi non importa se sto sviluppando per iOS o meno. Sono relativi agli aggiornamenti dell'interfaccia utente.
1
Ho un gestore dati che memorizza / fornisce dati. Ho una tabella che popola i dati recuperati dal gestore dati. Diciamo che l'utente fa clic su "Elimina riga X"
Dovrei prima chiedere al gestore dati di cancellare i dati e successivamente aggiornare la tabella dell'interfaccia utente? Sarebbe una "cattiva pratica" cancellare la riga direttamente dall'interfaccia?
2
Diciamo che nella mia tabella Row1 è un nome di ricetta e Row2 e Row3 sono ingredienti. Se l'utente cancella tutti gli ingredienti, voglio cancellare anche la ricetta. Dove dovrebbe essere questa logica (in Presenter o nel livello applicazione)? Voglio che la ricetta sia cancellata dall'interfaccia utente e dal gestore dei dati. L'interfaccia utente dovrebbe conoscere questa regola? Sarebbe una regola "Applicazione aziendale" che dovrebbe essere gestita solo nel Livello applicazione?.