Я выполняю настройку из существующей библиотеки, которая имеет следующую структуру:
public class BaseClass
{
public Method1();
public Method2();
}
public class A : BaseClass
{
public Method1();
public Method2();
}
public class B : BaseClass
{
public Method1();
public Method2();
}
public class C : BaseClass
{
public Method1();
public Method2();
}
Выше приведен код, который Я не могу изменить .
Сейчас,Мне нужно кончить A, B, C. Но ВСЕ изменения внутри каждого наследства абсолютно одинаковы.логика и код - абсолютно одинаковые изменения.
public class BaseClass1 : BaseClass
{
public override Method1(); //some logic changed comparing to base
}
public class A1 : A
{
public override Method1(); //Changes are totally same with BaseClass1
}
public class B1 : B
{
public override Method1(); //Changes are totally same with BaseClass1
}
public class C1 : C
{
public override Method1(); //Changes are totally same with BaseClass1
}
Весь код дублируется, копируется в каждый класс.
Мой вопрос: как можно избежать копирования кода ??
Этот код не работает четко:
public class BaseClass1<T> : T where T: BaseClass //Base class cannot be T
{
public override Method1();
public override Method2();
}
Причина, по которой я не хочу дублировать код, состоит в том, что есть C, D, E, F и т. Д. Наследования.