Progettazione di una classe astratta Action con GUI

1

Ho una classe Action, in cui un'azione può fare una serie di cose, tra cui:

  1. Esecuzione di un elenco sequenziale di altre azioni
  2. Esecuzione di un'azione se una condizione è vera
  3. 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:

  1. 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 avere act() restituire vero / falso per determinare se è finito o includere una funzione isFinished() .

  2. La classe Action ha una funzione getNextActions() che restituisce un List<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?

    
posta Nathan Merrill 07.02.2015 - 06:17
fonte

0 risposte

Leggi altre domande sui tag