我正在寻找一种方法来做这样的事情:
class ClassA
{
public function func1():void{}
}
class ClassB extends ClassA
{
public override function func1():void{
trace("middleman");
base.func1();
}
}
我知道代理类,但是我想要实现的是类似的东西
var instance:ClassA = new ClassA();
instance = Modifier.messWith(instance); //returns instance with ClassB functionality, without ClassB being defined at compile time
我想要提供额外功能的类数量很高,并且我不想花很多时间为每个类编写扩展类。另一个用于不同的功能。有什么办法可以实现我正在尝试的目标?
编辑:作为回答,这是整个事情的最终目标,因为我在某种程度上使这个问题变得乱码:
我需要一种方法来生成动态代理,类似于Castle.DynamicProxy在C#中所做的那样,以便创建我正在研究的远程调用概念库。现有的Proxy类完全可以满足我的要求,但是有一个致命的缺点-它需要代理该类来扩展Proxy,这有两个缺点:1)我需要代理的所有类都需要扩展代理,这在使用现有代码时是一个问题。2)如果将对象简单地包装在一个代理的通用实现中(代理随机calasses函数调用并对其执行某些操作的类),则该对象不能传递给具有强类型参数的现有函数,因为它没有正确的类型(只有Proxy或其扩展名是可能的类型)。
我认为您应该分享它的终结点目标,因为您要的东西与AS3