Исходный код CodeCampServer содержит общий StaticFactory .
Я предполагаю, что это ключевой элемент механизма того, как структура хорошо работает с Dependency Injection.
Подклассы, использующие свой DefaultUnconfiguredState для обеспечения статического доступа к самому себе ненастроенному состоянию по умолчанию, которое механизм разрешения зависимостей может заменить рабочим.
Я не смог найти никакой документации для этого ...
Есть ли хорошее объяснение в книге ? (Я жду доставки от Амазонки ...)
... или кто-нибудь еще может дать хороший комментарий о том, что это такое и будет ли разумно принять этот шаблон (если он один ...)?
Обновление
Поскольку Джеффри Палермо ответил на этот вопрос, я вижу, что в (незавершенной) рукописи для MVC2 в действии этот шаблон / стиль обсуждается и иллюстрируется с использованием Фабрики, которая используется для нахождения хранилища, чтобы сохранить доменный слой не знает о проблемах постоянства. (см. глава 23 ).
По умолчанию использование этой фабрики вызывает исключение:
"знание о том, как создать
хранилище не находится с
завод. Эта фабрика просто
представляет возможность вернуться
хранилище "
В этом примере мог бы использоваться один из нескольких механизмов для инициализации конкретной реализации интерфейса репозитория. В примере из книги они решают не использовать контейнер IOC для простоты и предоставляют это явно в некоторой логике запуска.
"Важно то, что ни
Основной проект, ни проект пользовательского интерфейса
следует ссылаться на инфраструктуру
проект или библиотеки, которые являются чисто
инфраструктурный характер. У нас есть
сохранил NHibernate полностью
сторона, так что остальная часть
приложению все равно, как данные
доступ происходит "
И последнее замечание, касающееся примера кода в этой новой главе, заключается в том, что Factory больше не статичен (по крайней мере, не в том, что касается внешнего интерфейса).
Обновление 2
Мистер Палермо написал еще немного о этом особом стиле Abstract Factory (см. Реализацию OrderShipperFactory).
Я также мог бы просто рассмотреть «Ручной ввод зависимостей» (Дядя Боб).
Обновление 3 - март 2016 года
Здесь есть другой пример этого , хотя Джеффри явно говорит о том, что это демо-код, и комментарий указывает, что это будет настроено в том, что Марк Симан назвал бы Корень композиции (т.е. при запуске приложения)
Я обнаружил это в статье Джеффри " Луковая архитектура: часть 4 - после четырех лет "