Jako ćwiczenie edukacyjne (nie jestem w szkole - po prostu stary facet stara się nauczyć czegoś nowego), próbuję napisać symulację bramki logicznej, która zawiera opóźnienie propagacji. Użytkownik powinien także mieć możliwość grupowania bramek w celu tworzenia obiektów wyższego poziomu.
Chcę zastosować wzorce projektowe do mojego problemu, ale mam trudności.
Czytam wzorce projektowe Head First i widzę, że wzór Command jest dobrym sposobem na symulację impulsów elektrycznych przez obwód z opóźnieniem. Widzę również, że wzór złożony jest dobrym sposobem na symulację zagnieżdżonych jednostek. Po prostu nie wiem, jak je połączyć.
Innymi słowy, gdy przechodzę przez bramę, widzę, że brama „x” powinna odpalić. Ma opóźnienie 15 nanosekund, więc tworzę polecenie ze znacznikiem czasu 15 ns od bieżącego czasu gry. Gdzie jest dyspozytor? W przykładzie restauracji, w której polecenie jest „Rozkazem”, kelnerka i kucharz wysyłają polecenie i mają możliwość wprowadzenia opóźnienia. Jeśli mam bramę „kompozytową”, czy ma ona również własnego dyspozytora? Czy muszę używać Singletona do zarządzania kolejką?
Przeczytałem, co mogłem znaleźć, ale nadal potrzebuję pchnięcia we właściwym kierunku: