Sto cercando di capire qual è il modo migliore per configurare un FSM e anche mantenere pulite le mie interfacce e utilizzare un contenitore IOC per usare DI.
Andiamo a visitare l'esempio di esempio di Head First design pattern of the gumball machine.
interface IState
{
InsertQuarter();
EjectQuarter();
TurnCrank();
Dispense();
}
La migliore pratica è solo quella di generare un'eccezione per uno stato non valido? Perché aggiungere lo stato se non è nemmeno applicabile? Immagino che sia la parte in cui sono confuso. Potrei vedere questo semplice esempio diventare più complesso.
La mia altra domanda correlata è, come faccio a eseguire DI in questi stati? Dovrebbe essere registrata una macchina di stato e stati nel mio contenitore IOC? Supponiamo che disponga di un servizio ordini e di un servizio di inventario con una dipendenza su StageOrderState
. Come potrebbe essere questo modello di oggetto? Sto avendo difficoltà a digerire come effettivamente iniettare le dipendenze in questi stati. La mia ipotesi è che io potrebbe registrare gli stati e passare il contenitore intorno agli stati.