Я реализовал шаблон стратегии. Есть ли разумный способ справиться с дублированием нижеприведенных функций function2() и function1()?
В интерфейсе IBehaviour есть другие члены, которые не имеют общих функций.
class Behaviour1: IBehaviour
{
public void DoSomething()
{
Function1();
}
//other functions of IBehaviour
}
class Behaviour2 : IBehaviour
{
public void DoSomething()
{
Function2();
Function1();
}
//other functions of IBehaviour
}
class Behaviour3 : IBehaviour
{
public void DoSomething()
{
Function2();
}
//other functions of IBehaviour
}
У меня уже есть один класс для борьбы с таким поведением. Затем я понял, что разные ситуации требуют разного поведения, поэтому в этом основном классе я создаю объект Behavior во время выполнения. Я не хочу создавать еще один класс для Function1 и Function2, поэтому мне было интересно, есть ли что-то, чего мне не хватает.