MoDI — простой контейнер для внедрения зависимостей в Unity.
Решил я однажды разобраться как работать с Zenject и Ninject в Unity. Сделал несколько тестовых проектов — вроде работает. Начал копать дальше, понял принцип и решил, что хочу своё такое же, но попроще :) И чтобы было достаточно для всех моих разработческих потребностей. Так появился MoDI.
Не буду расписывать принцип инверсии зависимостей, об этом можно прочитать в более достоверных источниках. Скажу только, что более-менее серьёзный проект без этого сложно поддерживать и развивать. Да и вообще, один раз начав использовать сразу понимаешь все плюсы.
Это можно сказать и про ECS, да Leopotam? :)
MoDI можно подключить к проекту с помощью пакетного менеджера, через него же можно импортировать сцену с примерами. Ну или просто скачать архив и добавить в проект.
Простейший пример выглядит так:
using MoDI;
using UnityEngine;
public class QuickStart : MonoBehaviour {
public void Start () {
DI.Get().Bind<Hello>().WithArguments("Hi, I'm MoDI!" );
Hello hello = DI.Get().Resolve<Hello>();
}
}
public class Hello {
public Hello (string data) {
Debug.Log(data);
}
}
После запуска данного скрипта в консоле появится сообщение: «Hi, I’m MoDI!».
В документации можно найти ещё примеры и описание API .
Очередной велосипед для себя, но может кого-то заинтересует. Если хотите разработаться в этом как и я, пишите, помогу чем смогу 😉
__________________________________________________________________________________________
Все последние обновления этой и других статей, вы можете найти у меня в блоге https://mopsicus.ru
Подписывайтесь, чтобы не пропустить что-то интересное