Dynamic Selection of Concrete Components and Decorations: A Hybrid Car Dealership | 169
Example 4-45. GPS.as
package
{
public class GPS extends Decorator
{
private var auto:Auto;
public function GPS(auto:Auto)
{
this.auto=auto;
}
override public function getInformation( ):String
{
return auto.getInformation( ) +
" Global Positioning System~";
}
override public function price( ):Number
{
return 345.88 + auto.price( );
}
}
}
Example 4-46. RearViewVideo.as
package
{
public class RearViewVideo extends Decorator
{
private var auto:Auto;
public function RearViewVideo(auto:Auto)
{
this.auto=auto;
}
override public function getInformation( ):String
{
return auto.getInformation( ) + " Rear View Video~";
}
override public function price( ):Number
{
return 560.75 + auto.price( );
}
}
}
Example 4-47. MP3.as
package
{
public class MP3 extends Decorator
{
private var auto:Auto;
public function MP3(auto:Auto)
{
this.auto=auto;