Ho vari tipi di compiti, ogni attività implica quanto segue -
- Utilizza un XyzAPIProvider per interrogare e ottenere un payload
- converti il carico utile in un elenco di XyzDTOs (ModelMapper)
- converti l'elenco di DTO nell'elenco delle entità (XyzDto2EntityConverter)
- memorizza le entità nel database utilizzando il repository JPA (XyzRepository)
Ho intenzione di utilizzare Java ExecutorService per eseguire l'attività in una sua discussione.
Ogni attività implementerà Runnable e sostituirà il metodo run.
Voglio che un'istanza particolare venga istanziata e accodata a executorService a seconda del tipo di attività che la mia applicazione ottiene da una coda di lavoro.
Voglio capire qual è il modello di progettazione corretto applicabile qui? Con le mie conoscenze limitate, vedo una sorta di TaskFactory che accetta un tipo di lavoro e restituisce l'istanza di una determinata attività. Ma all'interno di TaskFactory, vedo che il metodo factory ha molto se poi altro. Esiste un modo migliore? Java 8 fornisce dei costrutti per questo caso d'uso?