我正在做一个通过池化机制一直监控状态的系统。一旦一个状态转移到另一个状态,做一些事情来进一步处理。
我想出的一个好主意是EventHandler,依赖于状态转换。但是我发现识别状态转换可能需要很多条件。
(例如,初始 -> 开启、开启 -> 关闭、开启 -> 维护、维护 -> 开启、...)
有没有改善这个问题的好方法?或任何建议?谢谢!
class StateMonitor
{
public delegate void Mydelegate();
public event Mydelegate SomethingHappened;
public string _state;
public StateMonitor()
{
SomethingHappened += new Mydelegate(monitor);
_state = "Initial";
}
public string state
{
get
{
return this._state;
}
set
{
string temp = value;
if (SomethingHappened != null)
{
if(this.state =="Initial" && temp =="On") //state transition
SomethingHappened();
}
}
}
public void monitor()
{
Console.WriteLine("Happened");
}
}