Доброго дня.
У меня есть набор классов, реализующих Factory Method. Соответственно, каждая фабрика отвечает за свою разновидность создаваемых объектов. Однако, в клиенте фабрики мне требуется каждый раз указывать фабрику явно, напр. new FactoryDelta.
Не усиливает ли это связанность компонентов проекта? Не будет ли лучшим решением создать фабрику для фабрик, или это избыточно? Ведь потенциально клиентов может быть несколько, и в каждом из них будет сильная связь с конкретной реализацией.
Наличие фабричного метода в классе не превращает класс в фабрику. Оно только предоставляет т.н. виртуальный конструктор объектов. Мне показалось что у тебя где то возникла путаница в терминах.
Фабрика, как вариант, может содержать коллекцию фабричных методов семейства классов.
Есть варианты исполнения фабрик, когда перед использованием фабрики ее сперва нужно инициализировать с помощью коллекции фабричных методов для конкретных типов.
Если вам так нравится, если вы сами понимаете зачем это нужно, если вы не нашли подхода по проще - то пожалуйста, делайте. Главное что-бы вы сами понимали что происходит и зачем вам проектировать приложение именно так.
Соглашусь, но тут скорее вопрос "лучше ли будет именно так", какие последствия это создаст для архитектуры. С одной стороны, это увеличит абстракцию и ослабит связи, а с другой - я еще никогда не видел примера, чтобы фабрика возвращала фабрику. Наверняка не я один додумался до этой блестящей идеи, а следовательно, есть данные, какая это практика - bad это или good.