Considera un caso d'uso del modulo:
- Il sistema mostra un elenco di potenziali filtri (per nome, per data di creazione ...).
- L'utente sceglie un filtro e fornisce i parametri necessari.
- Il sistema mostra un elenco di potenziali oggetti.
- L'utente sceglie un singolo oggetto.
- Il sistema restituisce l'oggetto scelto in qualche modo.
Sono bloccato su come questa sequenzialità verrà applicata nell'applicazione.
Supponiamo di provare ad accoppiare liberamente l'interfaccia utente dalla logica di business. Sospetto che abbiamo una specie di classe UI (riga di comando, grafica ...). Questa sarebbe una fine del confine. Dall'altra parte del confine, ci sarebbero una o più classi di controllori.
Da un lato, ho potuto applicare questa sequenzialità nell'interfaccia utente. Andando passo dopo passo a questo caso d'uso, sarebbe molto facile impedire all'utente di iniziare il passo 4 prima di completare il passo 2. Nei controller, ci sarebbe un metodo per ogni sottofase (searchWithFilters (...), chooseInList ( ...)) e l'interfaccia utente li chiamerebbe nei momenti appropriati. Tuttavia, se l'interfaccia utente viene ridisegnata in qualcos'altro, è compito del progettista far rispettare la sequenzialità nell'interfaccia utente.
C'è un modo in cui posso applicare questa sequenzialità nel controller, in modo che questo carico non sia sull'interfaccia utente? Questa sarebbe una buona idea da fare? Come potrei fare questo?