В качестве учебного упражнения (я не в школе - просто пожилой парень, пытающийся выучить что-то новое), я пытаюсь написать имитацию логических элементов, которая включает задержку распространения. Пользователь также должен иметь возможность группировать ворота для создания объектов более высокого уровня.
Я хочу применить шаблоны проектирования к моей проблеме, но мне трудно.
Я читаю шаблоны проектирования Head First , и вижу, что шаблон Command - это хороший способ для имитации электрических импульсов в цепи с задержкой. Я также вижу, что шаблон Composite является хорошим способом для моделирования вложенных модулей. Я просто не знаю, как их смешать.
Другими словами, проходя через ворота, я вижу, что ворота «х» должны открыться. Он имеет задержку 15 наносекунд, поэтому я создаю команду с отметкой времени 15 нс от текущего игрового времени. Где диспетчер? В примере закусочной, где команда является «Заказом», официантка и повар отправляют команду и имеют возможность ввести задержку. Если у меня есть «составные» ворота, есть ли у них собственный диспетчер? Нужно ли использовать Singleton для управления очередью?
Я прочитал то, что мог найти, но мне все еще нужен толчок в правильном направлении: