我想创建一个包装类,用最少量的代码替换现有类的特定方法或属性
我可以使用装饰器模式,但它不是很干净。我最终必须基本上重新声明包装类中的每个方法和属性,即使我只是覆盖其中的一个或两个,另外还需要维护接口。
我可以使用扩展方法,但我想覆盖现有的方法或属性,这样就无法工作,即使扩展方法可以覆盖现有方法,我也不希望它为每个实例覆盖方法。
我能想到的最好的就是
public MyDerivedClass : BaseClass
{
MyDerivedClass(BaseClass obj)
{
this.x = obj.x; this.y=obj.y etc.....
}
public override string BaseMethod()
{
}
}
我真正想要的是像
public MyDerivedClass:BaseClass
{
MyDerivedClass(BaseClass obj)
{
base = obj;
}
public override string BaseMethod()
{
}
}