Я стараюсь как можно чаще использовать внедрение зависимостей, но у меня возникают проблемы с такими вещами, как краткосрочные зависимости.
Например, допустим, у меня есть объект менеджера блога, который мог бы хотел бы создать список блогов, найденных в базе данных. Варианты для этого (насколько я могу судить) следующие:
Однако №1 плох, потому что он создает сильную связь . №2 по-прежнему кажется плохим, потому что это означает, что фабрика объектов должна быть предварительно внедрена, показывая все другие объекты, которые она может создать.
Номер 3 кажется нормальным, но если я использую номер 3, могу ли я поместить «новые» ключевые слова в сам объект blogEntryFactory ИЛИ ввести загрузчик в blogEntryFactory и использовать его?
Если у меня их много различные фабрики, такие как blogEntryFactory (например, у меня могли бы быть userFactory и commentFactory), казалось бы, размещение ключевого слова «новое» во всех этих различных фабриках создало бы проблемы с зависимостями.
Надеюсь, это имеет смысл ...
ПРИМЕЧАНИЕ
У меня было несколько ответов о том, что в этом конкретном примере блога нет необходимости, но на самом деле есть случаи, когда вам следует использовать шаблон абстрактной фабрики , и это то, к чему я прихожу. Вы используете в этом случае «новый» или делаете что-то еще?