我在一个类中有一系列实例函数。还有一个布尔实例变量指定对象状态。几乎所有的实例函数都依赖于这个布尔状态。他们的身体看起来像
int f() {
if (state) {
//do stuff
}
else {
// do other stuff
}
}
除此之外,状态还交换了一些功能。因此,如果状态为真,那么当用户调用 f() 时,它实际上会运行。但是当状态为假时,当用户调用 f() 时,会发生 antiF() 运行。
所以有些功能内部有开关,有些功能完全交换。
如果我用 C++ 做这个,我可能会使用函数指针。我将如何用 Java 做到这一点?策略模式?