我的应用程序中有许多类型的对象。都可以有以下状态:UpToDate、OutOfDate、NotComputed。对象的所有操作,仅当对象的状态为 UpTodate 时才被允许。如果对象的状态是 NotComputed 或 OutOfDate,则唯一允许的操作是 Compute 和 ChangeComputationParams。在 gui 中,我只想在允许的情况下显示对对象的操作。所以我有 Operation Validatiors 对象,对于每个返回对象上的操作是否应该显示在 gui 上的对象。问题是,每次我向某个对象添加新操作时,我都需要转到它的 OperationValidator 类,并在那里添加新函数。它必须是更好的方法。例子 :
class Object1OperationValidator
{
Object1OperationValidator(Object1& object1)
{
mObject1 = object1;
}
bool CanDoCompute()
{
return true;
}
bool CanDoChangeComputationParams()
{
return true;
}
bool CanDoOperation1()
{
if(mObject1.State() != UpToDate )
return false;
else
return true;
}
.....
bool CanDoOperationN()
{
if(mObject1.State() != UpToDate )
return false;
else
return true;
}
}