Цитата:
Сообщение от Wolsh
По Вашему коду мой вопрос скорее касается самой шапки. Как с нее "снять" зачарование, убрать один из декораторов.
|
Я могу предложить только быдло-способ, загасить эффект ненужного декоратора другим декоратором либо создать новый объект с текущими декораторами кроме ненужного.
Цитата:
Сообщение от Wolsh
 Код AS3:
override public function get strength():int {
return item.strength + this._strength;
}
? 
|
Посмотрите внимательнее на декоратор. У каждого из них есть свойство для хранения значения прибавляемого бонуса. Т. е. если применить к вещи 2 декоратора силы +5 и +10, то в памяти будут хранится эти два свойства со значениями 5 и 10. Если увлечься такими апгрейдами, то в конце концов объект вещи разжиреет.
Цитата:
Сообщение от Wolsh
Если хотите камней, то их есть у меня.
Шапка hat это экземпляр Item, так?
У Item есть свойства strength, stamina и т.д.?
Вопрос – чем ваше декорирование лучше прямой установки?
 Код AS3:
var hat:IItem = new Item("Magic hat");
hat.stamina += 50;
|
У
Item нет свойств, только геттеры. Свойство для хранения значения бонуса добавляет декоратор, в этом то вся и фишка. Если правильно понимаю, то во эта конструкция будет существовать в единственном экземпляре для всех объектов класса.

Код AS3:
public function get armor():int {
return 12;
}
P.S. Вопрос про измерение памяти все еще в силе, если эта белиберда сэкономит 5% памяти, то ну его нафиг.
