Autore Topic: Consiglio progettazione MVC  (Letto 695 volte)

Offline mk178

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +3
    • mikinacucchi
    • Mostra profilo
    • miki
  • Dispositivo Android:
    LG Optimus One
Consiglio progettazione MVC
« il: 06 Giugno 2011, 15:26:03 CEST »
0
La mia applicazione ha la seguente struttura:
  • 1 classe che funge da struttura dati principale con un handler per interagirvi(inizializzare e aggiornare i valori)
  • 1 servizio che carica la struttura dati (tramite messaggi all'Handler della struttura dati)
  • n servizi che l'aggiornano (tramite messaggi all'Handler della struttura dati)
  • 1 activity in ascolto sulle eventuali modifiche della struttura dati (implements Observer)

ho cercato di implementare il più possibile il pattern MVC, come anche illustrato nel tutorial presente nel forum.

La logica è la seguente i service modificano la struttura tramite messaggi all'hendler della struttura(l'unico che accede direttamante alla struttura).
Se le modifiche riguardano valori da notificare all'utente, la struttura lancia una notify che viene catturata dall'activity, che a sua volta provvede a informare l'utente graficamente.
Gli n service eseguono operazioni di rilevazione di dati da varie fonti (e relativo aggiornamento della struttura dati) ad intervalli di tempo variabili.

la domanda è: mi consigliereste classi più "android-oriented" tipo AlarmManager, utilizzo di Broadcast, Content ecc.. o mi limito a activity, service, hendler e thread temporizzati all'interno dei service?
che tradotta sarebbe: mi devo complicare la vita, ma ottenere qualcosa che sfrutti di più le potenzialità delle classi specifiche offerte,
oppure il vantaggio sarebbe irrisorio? :-\


Grazie
Proposta seminario su Android a Bari:
[Evento] Seminario Android a Bari

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Consiglio progettazione MVC
« Risposta #1 il: 06 Giugno 2011, 15:49:15 CEST »
0
Non ho nessuna esperienza di sviluppo di applicazioni di questo tipo, tuttavia quello che ti posso dire è che l'uso di strumenti e strutture android-oriented è un mantra che viene ripetuto ad ogni Google-I/O. Quanto sia effettivamente necessario non so dirtelo, però a me da' l'impressione di un sentiero battuto e ben manutenuto, nel quale le spiacevoli sorprese sono minime.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mk178

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: +3
    • mikinacucchi
    • Mostra profilo
    • miki
  • Dispositivo Android:
    LG Optimus One
Re:Consiglio progettazione MVC
« Risposta #2 il: 07 Giugno 2011, 10:07:28 CEST »
0
Come immaginavo... in tal caso credo sia più opportuno trasformare la struttura dati in un content provider, che dite?

P.s. Tralatro la logica Observer è un pò diversa da quella del tutorial linkato, infatti ho dovuto specificare quali fossero gli Observer, all'interno della classe che estende Observable (la struttura dati)
es.
Codice (Java): [Seleziona]
istance.addObserver(Tracer.getInstance());dove Tracer è una classe che logga tutti i cambiamenti sui dati

update:
nell'indecisione se passare ad un content provider, ho modificato l'adding degli observe inserendo un metodo nella struttura dati in modo da controllare queste richieste, invece di aggiungerli tutti a priori sono le classi stesse(che implementano Observer) a comunicarlo....
Codice (Java): [Seleziona]
public synchronized static void addObs(Observer o){
                if(istance==null)getInstance();//initialize if never called                            
                istance.addObserver(o);
                if(D)Log.v(TAG, TAG+"have "+istance.countObservers()+" Observers now (added: "+o.getClass().getName()+")");
        }
« Ultima modifica: 07 Giugno 2011, 11:22:18 CEST da mk178 »
Proposta seminario su Android a Bari:
[Evento] Seminario Android a Bari