} //获得天线离开波门通知 private void NotifyAllObservers(WaveGate gate, WaveGateSubjectNotifyState type) { foreach (IWaveGateObserver ob in obs) { ob.NotifyChange(gate, type); } } //主动通知所有观察者,有波门发生变化
public void NotifyChange(WaveGate wg, WaveGateSubjectNotifyState state) { if (wg == null) { return; } if (state == WaveGateSubjectNotifyState.Add) { views.Add(new GraphicWaveGateView(wg, dispalyer)); } else { for (int i = views.Count - 1; i >= 0; i--) { if (views[i].WaveGate == wg) { views[i].Dispose(); views.Remove(views[i]); break; } } } }