![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Wolsh
(персонаж) ( (персонаж) +50 стамины )// надел шапку ( ( (персонаж) +50 стамины ) -50 стамины)// снял шапку Тоже этот вопрос интересует.P.S. Если это камень в мой эээ... код, то у меня декоратор используется только для создания шмота. Последний раз редактировалось PlutDem; 09.04.2012 в 23:57. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Не не, по Вашему коду персонаж то не декорируется, он именно "применяет шапку", а не "становится шапкой".
По Вашему коду мой вопрос скорее касается самой шапки. Как с нее "снять" зачарование, убрать один из декораторов. Цитата:
![]() Добавлено через 19 минут Если хотите камней, то их есть у меня. Шапка hat это экземпляр Item, так? У Item есть свойства strength, stamina и т.д.? Вопрос – чем ваше декорирование лучше прямой установки?
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 10.04.2012 в 00:17. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Цитата:
Цитата:
Цитата:
![]() Последний раз редактировалось PlutDem; 10.04.2012 в 00:49. |
|
|||||
|
Цитата:
значение + бонус. PlutDem, возьмите уже наконец любой профайлер и посмотрите сколько ресурсов потребляет ваше приложение.
__________________
משיח לא בא משיח גם לא מטלפן Последний раз редактировалось alatar; 10.04.2012 в 00:28. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот мне и непонятно. Технически.
Нацепил-то я вот так Как теперь "снять" например StrenghtUpgrade и оставить DexterityUpgrade?
__________________
Reality.getBounds(this); |
|
|||||
|
Это как удалить элемент в однонаправленном списке. В видео декораторы используются для апгрейдов, они в принципе не снимаемые. Нужна реализация с доступом к декорируемому объекту.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
(да, проглядел, что Вы возвращаете константы, не храня их в переменных)
Цитата:
Цитата:
Ведь для изменения одного (не побоюсь этого слова) свойства декоратором Вам надо нагрузить предмет полным комплектом всех геттеров, цепляющихся к прошлым геттерам. Вы так рассчитываете сэкономить память и увеличить быстродействие? Вопрос "чем ваше декорирование лучше прямой установки?" всё ещё в силе. Ответа не было.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 10.04.2012 в 01:30. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Цитата:
В любом случае, метод себя оправдал на жалких 10% ![]() Проще держать в вещи все возможные свойства. К тому же от их количества зависит далеко не многое. public class Main extends Sprite { public function Main():void { var items:Array = new Array(); for (var i:int = 0; i < 200000; i++) { items[i] = new TestItem; } } } public class TestItem { public var testSkills:TestSkils = new TestSkils(); public function TestItem() { } } public class TestSkils { public var ar_1:int =2; public var ar_2:int =2; public var ar_3:int =2; public var ar_4:int =2; public var ar_5:int =2; public var ar_6:int =2; public var ar_7:int =2; public var ar_8:int =2; public var ar_9:int =2; public var ar_10:int =2; public var ar_11:int =2; public var ar_12:int =2; public var ar_13:int =2; public var ar_14:int =2; public var ar_15:int =2; public var ar_16:int =2; public var ar_17:int =2; public var ar_18:int =2; public var ar_19:int =2; public var ar_20:int =2; public var ar_21:int =2; public var ar_22:int =2; public var ar_23:int =2; public var ar_24:int =2; public function TestSkils() { } } Если в TestSkils убрать все свойства кроме 3, то всего потребляемой памяти будет 8 776 Kb. А если сделать так, то всего потребляемой памяти будет 4 624 Kb. public class Main extends Sprite { public function Main():void { var items:Array = new Array(); for (var i:int = 0; i < 200000; i++) { items[i] = 12; } } } ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
)) Вам это всю тему твердят. Рад что нашли способ убедиться.
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ага, но не о видео речь. Я не нашел (может проглядел) этого ни у GOF, ни в книге по паттернам в AS3.0
И мне всегда это казалось странным. Как в данной ситуации – ну нацеплять декораторов на шапку навсегда еще куда ни шло. Но если декорировать перса, то нужен этот самый доступ к списку декораторов, что ли, чтобы вытаскивать экземпляр "до" и навешивать на него заново все что "после" удаляемого декоратора. То есть сама по себе красивая идея превращается в кошмар программиста. Ну, программиста моего уровня по крайней мере)))) А насчет чем мне видео помогло – в нем показан декоратор на интерфейсах. А в книге по паттернам AS3 рассматривается декоратор на наследовании, и меня всегда ужасало, что каждый декоратор вынужден наследовать фактически декорируемый класс)))) Только после видео я въехал, что речь о "пустом" абстрактном суперклассе. И всеравно на интерфейсах мне как-то комфортней и понятней. За это прозрение и спасибо))
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|