Ho una classe Action, in cui un'azione può fare una serie di cose, tra cui:
- Esecuzione di un elenco sequenziale di altre azioni
- Esecuzione di un'azione se una condizione è vera
- Permetti all'utente di scegliere tra diverse azioni.
L'ultimo caso che ho menzionato è il difficile. Il progetto su cui sto lavorando è basato su GUI e il loop principale non è sotto il mio controllo. Quindi, ho bisogno di un modo per dire all'interfaccia utente "offrire all'utente una scelta". Ci sono due modi in cui ho preso in considerazione questo:
-
La funzione
act()
imposta alcune variabili nell'interfaccia utente, quindi restituisce. Ciò rende l'azione n. 1 sopra elencata difficile da implementare (in quanto non dovrebbe incrementare l'azione successiva). Potrei anche avereact()
restituire vero / falso per determinare se è finito o includere una funzioneisFinished()
. -
La classe Action ha una funzione
getNextActions()
che restituisce unList<Action>
. Se l'elenco ha solo un elemento, lo eseguirà, altrimenti fornirà all'utente un elenco di scelte.
Penso che entrambi siano fattibili, ma non sono sicuro quale sarebbe il migliore in termini di manutenibilità e flessibilità del codice. Quale opzione sarebbe la migliore, o c'è una terza opzione a cui non avessi pensato?