Per le definizioni e gli esempi di "stato", vedi: link , link , link
Un diagramma che mostra un esempio molto semplice, nota come lo stato corrente cambia il modo in cui il tornello funziona quando lo stesso ingresso (inserendo una moneta, spingendo sul tornello) viene dato due volte di fila: link
Ho pensato a questa domanda per un po 'e ho trovato nient'altro che:
- Riduci l'ambito / le caratteristiche del progetto / software.
- Spingere l'utente a prendere decisioni intelligenti per l'utente e / o fornire al programma un "cheat sheet" che semplifica le decisioni (ad esempio: invece di provare a scrivere un programma che guida un'auto utilizzando solo due webcam, potrebbe incorporare marcatori di waypoint sulla strada ogni 100 piedi, posizionare speciali segnalini riflettenti tra le corsie e utilizzare un database di mappe del terreno per aiutare il programma a prendere decisioni: uno richiederebbe il lavoro di un genio di Tesla / Newton-livello [presumendo che il programma può fare cose come (1) schivare gli animali, i resti di pneumatici esplosi, ecc. mentre si prendono misure meno drastiche per cose come il cartone e le bottiglie di plastica, (2) affrontare l'occlusione di punti di riferimento e gli indicatori causati da altri veicoli, (3) regola le condizioni meteorologiche, ecc. e così via] rispetto a qualcuno che può scrivere un algoritmo "collega i punti")
PS: classificherei questi due metodi come "barare" perché stai modificando in modo significativo l'input / output del programma. Nel primo caso, stai riducendo a zero il tuo programma e nel secondo stai trasferendo gran parte del carico decisionale su chiunque gestisca il database e il sistema di transito.
Esistono validi modi per eliminare / ridurre lo stato?