154 | Chapter 4: Decorator Pattern
Example 4-23. Hope.as
package
{
public class Hope extends Decorator
{
private var components:Component;
public function Hope(components:Component)
{
this.components=components;
}
override public function getSoul( ):String
{
return components.getSoul( ) + "|Hope";
}
override public function good( ):Number
{
return 5 + components.good( );
}
override public function evil( ):Number
{
return -10 + components.evil( );
}
}
}
Example 4-24. Courage.as
package
{
public class Courage extends Decorator
{
private var components:Component;
public function Courage(components:Component)
{
this.components=components;
}
override public function getSoul( ):String
{
return components.getSoul( ) + "|Courage";
}
override public function good( ):Number
{
return 10 + components.good( );
}
override public function evil( ):Number
{
return -8 + components.evil( );
}
}
}