Design per un'app Android (funzioni di farmacia)

2

Sto creando un'app per Android per i compiti di farmacia in diverse città.

Il mio approccio:

Ho creato un Interface con il metodo getDuties , e per ogni città creo una classe chiamata con il nome della città Esempio:

public class AthensProvider extends CityProvider

All'interno di questa classe, ho la logica per analizzare e restituire oggetti duty.

Infine, quando l'utente cambia la preferenza della città, ho qualcosa del tipo:

CityProvider provider = ProviderHelper.getProvider(city);
provider.getDuties();

Questo approccio è corretto?

    
posta Giannis 04.03.2016 - 10:41
fonte

2 risposte

2

I compiti sembrano qualcosa che dovrebbe essere in un database o in un file di configurazione. Avere codice personalizzato nella tua app per ogni città sembra un incubo di manutenzione in attesa di accadere.

    
risposta data 04.03.2016 - 11:58
fonte
1

Se le mansioni non cambieranno nel corso del tempo o cambieranno molto raramente (ad esempio una volta in un trimestre), potrebbe essere una buona idea codificarle nel codice piuttosto che utilizzare un database.

In questo caso potresti provare un design basato su enum:

public enum Duties {
    ATHENS {
      public String[] getDuties() {
        return {"a", "b"};
      }
    },

    SPARTA {
      public String[] getDuties() {
        return {"c", "d"};
      }
    };

    abstract public String[] getDuties();
}

Quindi sarai in grado di ottenere le doveri con il seguente codice:

Duties.ATHENS.getDuties()

In caso di hardcoding, è sempre una buona idea razionalizzare un commento.

Se le mansioni cambiano spesso, puoi considerare di archiviare i compiti di ciascuna città in un database e sincronizzarli con le informazioni memorizzate sul server durante l'avvio dell'applicazione.

    
risposta data 04.03.2016 - 11:51
fonte

Leggi altre domande sui tag