![]() |
|
||||||||||
|
|
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Не могу до конца разобраться и не могу не чего найти по вопросу, что именно делают методы в конце карты внедрения:
1)super.injector.map(Class).asSingleton 2)super.injector.map(Class).getProvider 3)super.injector.map(Class).hasProvider 4)super.injector.map(Class).locally 5)super.injector.map(Class).seal 6)super.injector.map(Class).setInjector 7)super.injector.map(Class).softly 8)super.injector.map(Class).toProvider 9)super.injector.map(Class).toSingleton 10)super.injector.map(Class).toType 11)super.injector.map(Class).toValue 12)super.injector.map(Class).unseal Добавлено через 2 часа 34 минуты По своей глупости я не правильно задал вопрос, это вообще не относится к RL2, это из SwiftSuspenders. Если кто то знает где можно почитать про SwiftSuspenders 2 дайте пожалуйста ссылку. Очень хочу освоить RL2, но четвёртый день просто до сумашествия без прорыва. |
|
|||||
|
Здесь есть описание всех этих методов.
Если написать то при запросе YourClass, всегда будет возвращается один единственный экземпляр этого класса. Если написать то при запросе YourClass, всегда будет возвращается единственный экземпляр класса, который был указан в скобках toValue. Если написать то при запросе YourClass, всегда будет возвращается новый экземпляр класса, который был указан в скобках toType. Вот, что нашел в интернете: injector.map(YourClass); //current equivalent: injector.mapClass(YourClass, YourClass); injector.map(YourClass, 'name'); //current equivalent: injector.mapClass(YourClass, YourClass, 'name'); injector.map(YourClass).to(YourClass); //equivalent to the first mapping (i.e.: optional) injector.map(YourClass, 'name').to(YourClass); //equivalent to the second mapping (i.e.: optional) injector.map(YourInterface).toType(YourClass); //current equivalent: injector.mapClass(YourInterface, YourClass); injector.map(YourClass).asSingleton(); //current equivalent: injector.mapSingleton(YourClass); injector.map(YourInterface).toType(YourClass).asSingleton(); //current equivalent: injector.mapSingletonOf(YourInterface, YourClass); injector.map(YourInterface).toValue(value); //current equivalent: injector.mapValue(YourInterface, value); var request : InjectionRequest = injector.map(YourClass); //current equivalent: var request : InjectionConfig = injector.getMapping(YourClass); P.S. Остальные методы не так важны для изучения RL2. |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
TWETTI Большое Вам Спасибо! Сейчас продолжу изучение класса который находится по Вашей ссылке. Продолжу, это по тому, я мельком его уже сегодня пробежал, точнее сказать пытался перевести гуглом, но этот перевод плодовитым не оказался. В общем разрываюсь между классами,
примерами на гигхабе и.. и всё, больше нет не чего! Чтобы лучше обрисовать свою ситуацию - представьте, что я только начал изучать as3, но у меня не было как у всех первых игр сделаных не по шаблонам, не первых сайтов, а вместо этого я сразу начал учить MVC, которую как надеюсь понял. И в тот самый момент, как мне показалось что я понял, я услышал про RL2. И вот теперь я кое как, маленькими шагами приближаюсь к самому началу постижение этого фрейворка. Тяжело только из-за отсутствия информации. Сами авторы говорят, что вторая версия создана для тех кто учился на первой версии и что не каких других хелпов и книг уже не будет. Советуют учится на том что есть. Если подытожить все сказанное, то получится - если Вы увидели вопрос в этой теме и у Вас есть время, то не проходите мимо, потому что как сами понимаете, больше помощи ждать и искать особо неоткуда. Цитата:
И ещё есть один вопрос: Цитата:
И поправьте меня если я ошибаюсь: при обращении к классу YourClass, а если быть точным package { public class MyClass { /** * по запуску класса Contex он внедрит в это класс * новый экземпляр класса YourClass. То есть он создаст где то в своей памяти * новый экземпляр класса и при каждом обращении к этому ( MyClass ) классу * больше не будет создавать новый\очередной экземпляр класса YourClass ? * или он будет при каждом обращении к классу MyClass создавать очередной * экзепляр класса YourClass, а затем удалять его и так всегда? */ [Inject] public var _yourClass:YourClass; public function MyClass() { } overide public function initialize():void { //и здесь обращусь к методам класса YourClass } } } |
|
|||||
|
Цитата:
Цитата:
Или так: // Создаем некий класс и меняем его состояние: var some:YourClass = new YourClass(); some.someVar = 1234; some.someAction(); // Указываем, что при запросе YourClass отдавать экземпляр some. injector.map(YourClass).toValue(some); package { public class MyClass { [Inject] public var yourClass:YourClass; public function MyClass() { } overide public function initialize():void { trace(yourClass.someVar); // Выведет 1234 } } } Добавлено через 9 минут Цитата:
Пример: При запросе IGalleryImageService будет возвращаться FlickrImageService; |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
Спасибо Вам Большое за помощь! Пошёл переводить весь класс InjectionMapping... удачи мне.. |
|
|||||
|
Зачем вам сейчас MVC и Robotlegs? Вы же только начали изучать AS3. И зачем изучать, переводить все классы фреймворка? Я за 2 года разработки на RL использовал только asSingleton.
|
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
Добавлено через 3 минуты И возможно у Вас знакомство происходило после чтения книги и Вы уже знали, что Вам надо. А я читаю ту же книгу, но из-за неоднозначного перевода приходится все сразу смотреть, и примеры и классы. Потом разумеется я буду думать, что за чем мне это все надо было, точно так же как я сейчас вспоминаю, как в самом начале я все в тетрадке записывал. Сейчас смешно, а тогда казалось, что ИМЕННО ТАК И НУЖНО ))) |
|
|||||
|
Ответил вам в другой теме про RL2.
http://www.flasher.ru/forum/showthread.php?t=202436 |
|
|||||
|
Banned
Регистрация: Mar 2013
Сообщений: 1,864
|
В чем я ошибаюсь?
public function MainConfig(stage:Stage ,contextView:DisplayObjectContainer) { super.initialize(); super.configure(new ContextView(contextView)); injector.map(ClassA).asSingleton(); var myClass:ClassC = new ClassC(); myClass.num = 555; injector.map(ClassC).toValue(myClass); injector.injectInto(myClass); super.injector.instantiateUnmapped(ClassA); } package { public class ClassC { public var num:int = 0; public function ClassC() { // } } } package { import robotlegs.bender.framework.impl.Context; public class ClassA { [Inject] public var _c:ClassC; private var _context:Context; public function ClassA() { _context = new Context(); _c = _context.injector.instantiateUnmapped(ClassC); trace(_c.num);//why the value is not 555? } } } Цитата:
Цитата:
|
|
|||||
|
Не понятно ничего. Напишите подробно, что вы хотите сделать.
Почему класс ClassA содержит в себе иниализацию класса Context? [Inject] можно использовать только после того, как Context будет создан. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|