自从问这个问题以来,很少有人对这个话题有什么看法:
我觉得这个问题是基于观点的,但这两种方法都有一些利弊:
在我看来,基于事件的方法更容易实现:
public class Observable
{
public event Action<object, object> OnStateChange;
public void Event()
{
// do something
// choose appropritate args
OnStateChange.Invoke(null, null);
}
/* versus ************************************************/
Observator[] observators;
public void InformObservators()
{
foreach (Observator observator in observators)
// choose appropritate args
observator.UpdateState(null, null);
}
}
public class Observator
{
public Observator(Observable observable)
{
observable.OnStateChange += UpdateState;
}
/* versus ************************************************/
public void UpdateState(object arg1, object arg2)
{
}
}
如我们所见,
Observator
两种方法的模式差别不大,但是
Observable
类将具有更简单的方法来通知更改,即
Event
方法,在我看来,这比
InformObservers
从第二种方法。