Skip to content

nequenz/Lightweight-Dependency-Injection-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Lightweight-Dependency-Injection

-------------------------------------------------------------------------RUSSIAN--------------------------------------------------------------------------- Собственная легковесная реализация контейнера зависимостей aka DI Container.

Данный контейнер можно использовать для превращения вашего приложения в набор слабосвязанных частей с сильно сегментированными обязанностями. Можно произвести склейку объекта посредством установщиков(конфигураторов) aka installer. Сами установщики собираются в контейнер aka InstallContainer, позволяющий собрать наборы зависимостей различных объектов.

Пример 1. Использование отдельного установищика

    DefaultInstaller playerInstaller = new DefaultInstaller();

    playerInstaller.Bind<IWeapon, RPG>(TypeParams.Instance);

    Player player = new Player();

    player.InitDependencies(playerInstaller);

    player.Shoot();

Пример 2. Использование контейнера

    InstallContainer container = new(typeof(DefaultInstaller));

    container.Select<RandomValueLogger>()
        .Bind<ILogger, Logger>(TypeParams.Instance)
        .Bind<IRandomizer, Randimizer2>(TypeParams.Instance);

    RandomValueLogger? randomValueLogger = container?.Build<RandomValueLogger>();

    randomValueLogger.ShowRandomValue();

About

My realization of DI container

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages