У меня есть класс, который должен будет использовать шаблон разработки стратегии. Во время выполнения я должен переключать разные алгоритмы, чтобы увидеть эффекты на производительность приложения.Стратегия Дизайн шаблона с контейнерами IOC - специально для Ninject
В настоящее время рассматриваемый класс принимает четыре параметра в конструкторе, каждый из которых представляет собой алгоритм.
Как использовать Ninject (или обобщенный подход) я могу использовать IOC, но использовать шаблон стратегии?
Текущее ограничение заключается в том, что мое ядро (контейнер) известно о каждом интерфейсе алгоритма, но это может быть связано только с одним конкретным классом. Единственный способ, который я могу видеть на данный момент, - это пройти во всех восьми алгоритмах при построении, но использовать разные интерфейсы, но это кажется совершенно незавершенным. Я бы этого не сделал, если бы я не использовал контейнер МОК, так что это должно быть каким-то образом.
Пример кода:
class MyModule : NinjectModule
{
public override void Load()
{
Bind<Person>().ToSelf();
Bind<IAlgorithm>().To<TestAlgorithm>();
Bind<IAlgorithm>().To<ProductionAlgorithm>();
}
}
Человек должен использовать оба алгоритма, так что я могу переключаться во время выполнения. Но только TestAlgorithm связан, так как он первый в контейнере.
Это сработало. Приветствия. – Finglas