Mam klasę, która będzie musiała użyć wzorca projektowania strategii. W czasie pracy muszę przełączać i wyłączać różne algorytmy, aby zobaczyć wpływ na wydajność aplikacji.Strategia Wzór projektu z kontenerami IOC - Ninject specific
Dana klasa pobiera obecnie cztery parametry w konstruktorze, z których każdy reprezentuje algorytm.
Jak używać programu Ninject (lub podejścia uogólnionego), czy mogę nadal używać IOC, ale użyć wzorca strategii?
Obecne ograniczenie polega na tym, że moje jądro (kontener) jest świadome każdego interfejsu algorytmu, ale można go powiązać tylko z jedną konkretną klasą. Jedynym sposobem, jaki widzę w tym momencie, jest przejście przez wszystkie osiem algorytmów w budowie, ale używanie różnych interfejsów, ale wydaje się to całkowicie niepotrzebne. Nie zrobiłbym tego, gdybym nie używał kontenera IOC, więc musi być jakiś sposób obejścia tego.
przykładem Kod:
class MyModule : NinjectModule
{
public override void Load()
{
Bind<Person>().ToSelf();
Bind<IAlgorithm>().To<TestAlgorithm>();
Bind<IAlgorithm>().To<ProductionAlgorithm>();
}
}
osoba musi skorzystać z obu algorytmów więc mogę przełączyć w czasie wykonywania. Ale tylko TestAlgorithm jest związany, ponieważ jest pierwszym w kontenerze.
To działało. Twoje zdrowie. – Finglas