Я обратился к шаблону состояния для своего проекта netmf. Что-то основанное на этом: http://www.dofactory.com/Patterns/PatternState.aspx#_self2
У меня есть поворотный энкодер, который будет действовать по-разному в каждом состоянии.
Я пытался обдумать это и не могу заставить что-либо работать с моей стороны. Я не уверен, где и как внедрить обработчик прерывания в каждое состояние и как вызвать переключатель обработчика прерывания. Без шаблона состояния код выглядит примерно так:
RotaryEncoder RE = new RotaryEncoder(pin1, pin2);//create new instance of knob
RE.OnRotationEvent += OnRotationEventHandler;//subscribe to an event handler.
//do other things
...
...
static void OnRotationEventHandler(uint data1, uint data2, DateTime time)
{
//do something
}
Итак, как правильно закодировать отдельные «OnRotationEventHandlers» для каждого состояния? Это часть контекста? Часть абстрактного базового класса?
Спасибо за помощь!