Secondo Wikipedia :
In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time. This information includes the method name, the object that owns the method and values for the method parameters.
E secondo il testo del professor Schmidt , un comando ha:
- Esecuzione indipendente dal tempo della logica dell'applicazione. L'incapsulamento di la logica dell'applicazione consente di accodarla ed eseguirla in un punto diverso in tempo.
- Esecuzione indipendente dal contesto della logica dell'applicazione. La separazione tra logica applicativa e contesto consente di eseguire l'applicazione in contesti separati, come in un thread diverso o utilizzando uno stato diverso.
- Intercambiabilità della logica dell'applicazione. La separazione tra l'applicazione logica e contesto consentono di scambiare più facilmente la logica dell'applicazione.
Se incapsuli tutte le informazioni in un Intent
, il onHandleIntent
funziona come un metodo astratto per il comando executor, proprio come descritto al comando pattern del processore testo.
Pertanto, anziché implementare esplicitamente l'executor per richiamare un comando, è sufficiente delegare l'esecuzione del comando al sistema operativo.
Quindi le domande sono:
- IntentService è l'implementazione del framework per il pattern di comando?
- In caso affermativo, perché alcune implementazioni MVP per Android implementano esplicitamente le proprie, utilizzando
ThreadExecutor
come consumatore eRunnable
come comandi, invece di usare quello fornito dal framework?