ООП Креативный Дизайн Шаблон - PullRequest
0 голосов
/ 11 марта 2019

У меня есть следующие типы данных, и я изо всех сил пытаюсь реализовать хороший дизайн для создания экземпляров для разных типов.

События: у меня есть другой тип событий (EventA, EventB и т. Д.)

  • У каждого события могут быть подтипы. Например, EventAA и EventAB являются подтипами EventA, аналогично EventBA и EventBB являются подтипами EventB.
  • Каждое событие имеет source и output, но типы различаются. Например, EventAA имеет List<String> в качестве источника, EventBB имеет int в качестве источника. То же самое и с выводом.

В конце мне нужно создать EventAA, EventBA с их источником и выходами. Я попытался применить шаблон проектирования Abstract Factory для создания событий, определенных как Event, EventSource, EventOutput как абстрактный класс. Также созданы EventAFactory и EventBFactory классы. Хотя мои под события EventAA и EventAB имеют источник и выход, типы могут отличаться Поэтому я не смог обобщить метод createEvent(). Для каждого типа входных данных я определил метод createEvent(type, source, output), но это не так. Варианты использования для шаблона проектирования AbstractFactory онлайн не имеют таких подтипов, как я (EventAA и т. Д.), И я запутался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...