public static void TestStart() { var wd = new WeatherData(); var currentConditionDisplay = new CurrentConditionDisplay(wd); var thirdPartyDisplay = new ThirdPartyDisplay(wd); wd.SetMeasurements(20, 30, 40); wd.SetMeasurements(50, 60, 80); wd.SetMeasurements(20, 30, 40); }
public void ObserverTest() { // { // Subject subject = new ConcreteSubject(); // // var a = new ObserverA(); // var b = new ObserverB(); // subject.Attach(a); // subject.Attach(b); // subject.Notify(); // subject.Delete(b); // subject.Notify(); // } // { // var cat = new Cat(); // cat.Attach(new Master()); // cat.Attach(new Mouse()); // cat.Cry(); // } { var cat = new Cat(); var master = new Master(); var mouse = new Mouse(); cat.Attach(master); cat.Attach(mouse); cat.Cry(); cat.Delete(master); cat.Cry(); } { var weather = new WeatherData(); var party1 = new ForcastPartyDisplay(); var party2 = new ThirdPartyDisplay(); weather.RegisterObserver(party1); weather.RegisterObserver(party2); weather._data.Hum = 25; weather._data.Tempoerature = 30; weather.Notify(); party1.Display(); party2.Display(); } { var person = new Person(); var mouse = new 观察者模式.自带的接口.Mouse(); var cat = new 观察者模式.自带的接口.Cat(new List <IObserver <int> > { person }); mouse.Subscribe(cat); cat.Cry(1); mouse.OnCompleted(); cat.Cry(3); } }