Come mantenere il mio codice attività leggibile e mantenibile?

3

Ho scritto un'App piuttosto piccola con una sola attività. Dalla mia comprensione, un'attività deve essere vista come una specie di vista e controllore in una classe.

Ma anche per una piccola app, con 3 finestre di dialogo (create con AlertDialogBuilder e tutte quelle classi interne anonime che lo accompagnano) la mia attività ha 500+ LOC ed è diventata molto difficile da mantenere. L'attività ospita principalmente gestori del ciclo di vita di Android e gestione delle visualizzazioni. La logica aziendale è molto piccola.

Come gestire le classi di attività per mantenerle leggibili e mantenibili?

    
posta metacircle 19.04.2013 - 11:21
fonte

2 risposte

1

Quando sviluppo per Android, penso sempre alle mie attività come controller e ai miei layout (XML) come alle mie visualizzazioni. I layout interagiscono tra loro e la logica di business attraverso le mie attività (controller). Ecco alcuni errori che ho imparato molto da:

  • Mantieni gli ascoltatori dei componenti come classi separate. Li tenevo come classi interne ai miei componenti (principalmente pulsanti). Questo ha reso il mio codice attività un puro casino e la modifica è stata quasi dannosa.
  • Prova e disponi di attività separate per ogni azione che hai. Questo renderà il tuo codice più facile da recuperare se hai bisogno di cambiare materiale (e quindi più manutenibile)
risposta data 19.04.2013 - 13:53
fonte
1

Di seguito sono riportati i punti che devi ricordare:

  • Biforca sempre i tuoi codici con metodi diversi. Intendo ad esempio, se stai registrando i vari listener di eventi, crea un metodo "registerListeners ()"

    public void registerListeners() {
         // your button, listview....components event listeners codes
    }
    

    quindi in onCreate() , chiama questo metodo. In questo modo, hai tutti i codici registrati degli ascoltatori in un unico posto e sono più leggibili e ricercabili.

  • ottenere l'ID di tutti i controlli sarà in un altro metodo chiamato "initControls"

    public void initControls() {
         buttonSave=(Button)findviewById(R.id.save);
         listviewItem=(ListView)findviewById(R.id.listviewItem);
         // etc..etc...components
    }
    

    quindi in onCreate() , chiama questo metodo. In questo modo, avrai tutti i controlli id in un posto e apparirà molto pulito e ordinato. puoi cercarlo molto facilmente.

    onCreate() {
         //after setcontentview
         initControls();
         registerListeners();
    }
    

Spero, questo ti aiuti ad esplorare di più sulla scrittura del codice. :)

    
risposta data 07.08.2013 - 15:05
fonte

Leggi altre domande sui tag