public void Register(StateCondition stateCondition, MicrowaveTrigger trigger, IStateChanger stateChanger) { var key = new StateKey { InitialStateCondition = stateCondition, Trigger = trigger }; Add(key, stateChanger); }
public void ChangeState(MicrowaveTrigger trigger) { var key = new StateKey { InitialStateCondition = GetCurrentState(), Trigger = trigger }; if (TryGetValue(key, out var stateChanger)) { stateChanger.ChangeState(door, light, heater, startButton, timer); } }