class CustomService(IProcessor processor) : ICustomService
Класс CustomService
имеет зависимость, которая будет внедрена.Есть несколько реализаций для IProcessor
.Какая реализация должна использоваться, определяется настройкой, которая хранится в базе данных для текущего пользователя.
Сначала я подумал о реализации IHandlerSelector
, который бы извлекал настройку из базы данных и определял, какаяреализация для использования.Но есть бизнес-логика для случаев, когда параметр отсутствует в базе данных и т. Д. .... Поскольку есть бизнес-логика, я не уверен, что было бы правильно поместить это в IHandlerSelector
.
* 1009.* Я думал о создании другого класса с именем
TopService
:
class TopService(ISettingsProvider provider, IProcessorFactory procFactory, ICustomServiceFactory serviceFactory)
TopService
, использующего две типизированные фабрики.Он будет использовать ISettingsProvider
для получения настроек из базы данных и использовать IProcessorFactory
для разрешения соответствующего IProcessor
.После получения правильного IProcessor
я бы использовал фабрику ICustomServiceFactory
, чтобы разрешить CustomService
.
Однако, мне кажется, это немного не так.Есть ли лучший способ сделать это?