Здравствуйте, vmpire, Вы писали:
V>·>Ну потому что официального особо ничего нет... Но это вроде терпимо как некое описание:
V>·>IoC creates the objects, configures and assembles their dependencies, manages their entire life cycle. The Container uses Dependency Injection to manage the components that make up the application.
V>Это только описание конкретной реализации. А общего термина с определением, похоже. нет
Ну в целом ясно о чём речь. Это не строгая теория, а просто терминология.
V>·>Поэтому я и пытаюсь повернуть разговор в русло "а как же делать хорошо?". Так вот фреймворк сделать хорошо — не позволяет, принципиально. Хорошо можно делать wiring-кодом.
V>Я бы сказал, фреймворк не позволяет делать так, как хочется (потому он, собственно, и фреймворк).
V>Делать приемлемо (путсь не хорошо) фреймворк позволяет.
Ок. Это уже у кого какие стандарты качества. Я считаю, что падения в проде — неприемлимо.
V>·>Так вот, инициализация это такой же код как и всё остальное. Раз умеешь качественно писать на ЯП код бизнес-логики, то в чём проблема писать код инициализации — не понимаю.
V>·>Отличается только именами символов.
V>Именно! И вот в этом случае переменная y (или factory) и будет той самой переменной, о которой я говорю.
V>Это и будет примитивный IoC контейнер, в данном простейшем случае — из одной переменной.
Тогда это словоблудие. Любой код в котором есть локальная переменная является IoC-конейнером. Бред же.
V>·>Это и есть антипаттерн SL. Так не надо делать. Это противоположность DI.
V>У MS такой вариант как раз и называется Dependency Injection
Ты просто невнимательно читаешь. Открой секцию
Recommendations и там явно написано то, что я говорю:
don't invoke GetService to obtain a service instance when you can use DI instead.
V>>>Имелся в виду IoC контейнер. Я иногда ошибочно пишу DI контейнер
V>·>Значит я не понял твою мысль здесь...
V>Да мысль простая. Если пишете, например, ASP.NET приложение, которое в своей основе имеет IoC контейнер с сервисами, то не использовать его не получится.
Ну, неужели нельзя писать ASP.NET приложение в основе которого нет контейра?.. Неуежли платформа окончательно заиндусятилась?