我已经实施了策略模式 - 是否有一个聪明的方法来处理下面的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创建另一个类,所以我想知道是否有某些我缺少的东西。
你似乎已经正确地封装了一切。我不确定我了解你的问题 –