我知道这个flash.display.Graphics
类是最终的,不能扩展,也不能替换它的精灵对象。但我需要改变它的行为或假装改变的行为。通常在 OOP 中我会扩展一个类,覆盖它的方法并像我想要的那样调用超级方法。但既然这是不可能的Graphics
,那么实现这一目标的最佳技术是什么?
- 原型设计是一种按照我想要的方式修改
Graphics
类的方法吗?
假设我想画正方形而不是圆形:
public class Graphics2 extends Graphics
{
override public function drawCircle(x: NUmber, y: Number, radius: Number): void
{
super.drawRect(x - radius, y - radius, 2 * radius, 2 * radius);
}
}
这是我希望我能做到的。我怎么能伪造它?最后,我希望拥有代表不同绘制风格的对象。当我替换我的Graphics2
对象时,我只是改变了完整的绘画风格(圆圈变成了正方形等)