Ostatnio zająłem się tematem wzorców projektowych i chciałem was poprosić o opinię. Wydaje mi się że w znaczącej większości rozumiem jak mógłbym zastosować takie wzorce jak "strategia", "dekorator" czy "obserwator" w procesie tworzenia gier, jednak tutaj sprawa się troszkę pokomplikowała i nie jestem pewny co do słuszności zastosowanego przeze mnie rozwiązania. Otóż jest sobie fabryka abstrakcyjna. Jeżeli dobrze zrozumiałem moją książkę ma ona zastosowanie wtedy gdy nie wiemy z góry jaki obiekt zostanie utworzony i hermetyzujemy proces tworzenia się obiektów przy jednoczesnym zapewnieniu tego by klient otrzymał konkretny produkt i nie miał zbyt dużego wpływu na jego kształtowanie.
No więc pomyślałem coś takiego "W sumie to fajnie. Jak bym chciał zrobić spawner i przekazywać tam konkretnych przeciwników różniących się na przykład tylko dzierżoną bronią to było by idealne... Ale w sumie jeśli to fabryka to może dało by się też zrobić z tego system craftingu... A co mi tam spróbuje!"
I wyszło mi coś takiego:
(zdjęcia w załączniku)

Oczywiście zamiast robienia kuca można by robić na przykład broń i przekazywać jaki rodzaj celownika ma posiadać jaki magazynek itp.
Ja zauważyłem że każda nowa dodana rzecz np. gdybym chciał dodać rasę alicorn to musiał bym edytować interfejs oraz fabrykęSkładnikówTwojegoKuca czyli 2 rzeczy co jest pierwszą niedogodnością jaką widzę.
Drugi minus jest taki że trzeba dodatkowo zabezpieczać kod przed potencjalnym "niewłaściwym użytkowaniem" jako że im więcej opcji tym większa szansa na jakiś problem.
A co wy myślicie? Czy to jest słuszne? Czy na dłuższą metę się sprawdzi? A może jest inny jakiś wzorzec który bardziej by pasował do tego zadania?
Bardzo proszę o wasze opinie.