Открыть список
Как стать автором
Обновить

Комментарии 5

Внедрение зависимости создает зависимость (данные) от объекта

Вот это поворот, я то думал как раз наоборот
Статья «ух ты, я прочитал про метатеги в SS, ничего не понял, поэтому надо написать про это на хабре»

Для этого используется функция flash.utils.describeType которая определена в классе (Class), она возвращает XML представляющий этот класс. В XML содержаться теги, с описанием метатега [Inject]. Именно их SwiftSuspenders ищет в представлении класса при парсинге XML, после этого может свободно сделать инъекцию (заменить метатег на нужное значение) согласно описанным правилам.

Большие дядьки уже давно используют JSON

Если Класс использует некоторый набор параметров настроек, которые могут меняться, и его работа зависит от этих параметров, то они должны устанавливаться не в коде Класса, а за его пределами

Мне кажется Вы в корне не поняли Dependency Injection. Для изменения настроек объекта нет необходимости использовать IoC. IoC нужен, когда Вы хотите писать правильно, используя абстракции, предоставляемые окружением, а не конкретные реализации.

Теперь Вы конечно можете пойти и создать свои собственные метатеги, но как оказалось, при компиляции компилятор их просто удалит

… А если вы всё-таки прочитаете документацию, то найдёте там, что метатеги можно включать в SWC, и тогда при компиляции проекта, который использует эту SWC, они не удалятся. Именно так люди создают «свои собственные метатеги»

Именно их SwiftSuspenders ищет в представлении класса при парсинге XML, после этого может свободно сделать инъекцию (заменить метатег на нужное значение) согласно описанным правилам.

Заменяется не метатег, а в поле, помеченное этим метатегом, будет установлена ссылка на объект. В этом и смысл МЕТА-тегов, они предоставляют мета-информацию, но главный здесь — это поле.
IoC = Dependency Injection?
Inversion of Control — это общий паттерн. Dependency Injection — это частная реализация
bsideup: Спасибо за комментарий, там где ошибся в переводе, обязательно внесу поправки.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.