2013-03-31 14 views
23

So che alcuni dei design pattern utilizzato in Android come ...quali sono gli schemi di progettazione utilizzati in Android?

  1. ricevitore broadcast utilizza Observer Design Pattern
  2. Intent usa una sorta di Design Factory pattern
  3. View utilizza Composite Design Pattern
  4. Media Framework utilizza il modello di facciata Design

oltre a questi ci sono altri schemi di progettazione utilizzati in Android? Apprezzo i tuoi pensieri

+1

Può essere Tutti gli adattatori (i.e BaseAdapter, SimpleAdapter..etc) utilizza il modello di progettazione dell'adattatore. – Pragnani

+0

Sembra una domanda piuttosto aperta che non appartiene a SO. – nwellnhof

+1

Guardando il codice sembra che gli anti-pattern siano usati più di qualsiasi modello di design. Sì, ci sono alcuni esempi di modelli che hai menzionato, ma la maggior parte del codice dimostra solo cosa non fare quando si scrive software, specialmente un SDK. Mi piacerebbe scrivere un blog su questo se mai ci arrivassi. – Sileria

risposta

8

Android utilizza molti modelli nel lato della sua struttura.

Il primo motivo che è possibile visualizzare è Pattern di livello, è classificato come modello di architettura nel libro POSA 1 (Pattern-oriented Software Architecture 1). La caratteristica strutturale principale del pattern Layers è che i servizi di Layer J sono usati solo da LayerJ + 1 non ci sono altre dipendenze dirette tra i layer. Questo schema risolverà il problema del mix di problemi di basso e alto livello, in cui le operazioni di alto livello si affidano a quelle di livello inferiore. Android è costruito su una pila di layer a più livelli astratti (fare riferimento a http://elinux.org/Android_Architecture per ulteriori dettagli), quindi questo progetto è implementato per risolvere il suo problema.

Android fa un sacco di roba su più processi, quindi un meccanismo IPC (comunicazione tra processi) deve essere ben progettato. In Android, Binder e l'utilizzo di AIDL per rendere la comunicazione perfettamente anche se i servizi in questi processi possono essere scritti in Java, C o C++. Binder è implementato da Proxy (nel libro Gang of Four), Broker (nel libro POSA 1) e Pattern Wrapper facciate (fare riferimento a questo collegamento http://www.cs.wustl.edu/~schmidt/PDF/wrapper-facade.pdf) da implementare. Il pattern proxy nasconderà i dettagli della comunicazione dal client, quindi un processo può comunicare con l'oggetto nel contesto locale o nel contesto di rete in modo uniforme. Il broker è utilizzato per isolare i problemi relativi alla comunicazione. Il pattern Wrapper di facciata è utilizzato per incapsulare funzioni e strutture dati di basso livello nella libreria C Android all'interno dell'interfaccia di classe superiore.

Il meccanismo di multi thread utilizza anche molto schema. Un pattern che possiamo vedere è il pattern Command Processor utilizzato per eseguire chiamate di lunga durata.

Il pattern di osservatore viene utilizzato per tenere traccia dello stato relativo al sistema.

....

Questi sono tutto ciò che posso ricordare ora. Se sei interessato a modello di design Android. Puoi dare un'occhiata a questo corso: https://class.coursera.org/posa-001/class/index su Coursera per maggiori dettagli.

Problemi correlati