Як навчальна вправа (я не в школі - просто старий хлопець, який намагається навчитися чомусь новому), я намагаюся написати логічне моделювання воріт, яке включає затримку поширення. Користувач також повинен мати можливість групувати ворота разом для створення об'єктів вищого рівня.
Я хочу застосувати шаблони дизайну до своєї проблеми, але мені важко.
Я читаю шаблони дизайну Head First , і бачу, що шаблон Command - це хороший спосіб імітувати електричні імпульси через ланцюг із затримкою. Я також бачу, що композитний візерунок є хорошим способом імітувати вкладені одиниці. Я просто не знаю, як їх змішати.
Іншими словами, перебираючи свої ворота, я бачу, що ворота "х" повинні стріляти. Він має затримку 15 наносекунд, тому я створюю команду з позначкою часу 15 нс від поточного часу гри. Де диспетчер? У прикладі закусочної, командою є «Замовлення», офіціантка та кухар відправляють команду та мають можливість ввести затримку. Якщо у мене є "складені" ворота, чи має він також власного диспетчера? Чи потрібно використовувати Singleton для керування чергою?
Я читав, що міг знайти, але мені все одно потрібний поштовх у правильному напрямку: