編集:Actionscript3.0および/またはJavaを使用できます
デコレータクラスに少し問題があります。抽象クラスのサブクラスのサブクラスを装飾できるようにしたい。
明確にするために; 私はabstract weapon class
、をabstract sword class
拡張します。そして、最後にそれをconcrete long sword class
拡張します。飾れるようになりたいですlong sword class
。
Weapon <-------------Enchant "Decorator
/\ / \
/ \ "+3 damage"|"Paralyze"
/ \ V
"Abstract Components": Sword | Axe "Concrete Decorators"
/ \ / \
/ \ / \
"Concrete Components": LongSword|Short RedAxe| WarAxe "Apply Decorators Here"
現在、私がデザインパターンについて読んだすべての本は、「1層」の装飾を扱っています。
Weapon <-------------Enchant "Decorator
/\ / \
/ \ "+3 damage"|"Paralyze"
/ \ V
"Concrete components already": Sword | Axe "Concrete Decorators"