这个问题不是关于任何特定的语言,而是解决一个问题。
我有一个计时器,它向机器人发送一个方法并询问传感器数据。
一些传感器非常关键,几乎总是应该被请求,而其他一些传感器不是那么关键,但应该不时读取。
所以想象我有我的计时器,在计时器中它要求一个方法,该方法将由下面的代码返回:
Timer_Tick()
{
AskForData(SensorRequestList())
}
private int _tCliffState = 0;
private int _tCliffSignal = 0;
private int _tLight = 0;
//and 7 other
private byte[] SensorRequestList()
{
if (_tCliffState <= 5)
{
_tCliffState++;
return RequestCliffStates();
}
if(_tCliffSignal < 1)
{
_tCliffSignal++;
return RequestCliffSignals();
}
if(_tLight < 1)
{
_tLight++;
RequestLightSignals();
}
//and more ifs!
//reset all
_tCliffState = 0;
_tCliffSignal = 0;
_tLight = 0;
//...
}
如果我有 10 种方法,那么最好的方法是什么,比如命名为 1、2、3、...10,优先级为 1、2、3...10。
我怎样才能获得一个很好的模式,我可以确定具有更高优先级的方法会请求更多?像这样的模式:
1,1,1,2,1,3,1,1,4,1,1,1,2,1,1,1,3,1,1,1,4 and so on