《Head.First设计模式》的学习笔记(3)--观察者模式
2008-03-24 15:22
309 查看
意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
结构:
public void MeasurementsChanged()
2public class WeatherData : ISubject
2 {
3 private float temperature;
4 private float humidity;
5 private float pressure;
6 private List<IObserver> myList = new List<IObserver>();
7
8 public void SetWeatherData(float paramTemp, float paramHumidity, float paramPressure)
9 {
10 this.temperature = paramTemp;
11 this.humidity = paramHumidity;
12 this.pressure = paramPressure;
13 MeasurementsChanged();
14 }
15
16 public void MeasurementsChanged()
17 {
18 this.NotifyObservers();
19 }
20
21 public void RegisterObserver(IObserver paramIObserver)
22 {
23 myList.Add(paramIObserver);
24 }
25
26 public void RemoveObserver(IObserver paramIObserver)
27 {
28 myList.Remove(paramIObserver);
29 }
30
31 public void NotifyObservers()
32 {
33 foreach (IObserver observer in myList)
34 {
35 observer.Update(temperature, humidity, pressure);
36 }
37 }
38 }
源代码下载:/Files/wxj1020/WeatherStation.rar
结构:
public void MeasurementsChanged()
2public class WeatherData : ISubject
2 {
3 private float temperature;
4 private float humidity;
5 private float pressure;
6 private List<IObserver> myList = new List<IObserver>();
7
8 public void SetWeatherData(float paramTemp, float paramHumidity, float paramPressure)
9 {
10 this.temperature = paramTemp;
11 this.humidity = paramHumidity;
12 this.pressure = paramPressure;
13 MeasurementsChanged();
14 }
15
16 public void MeasurementsChanged()
17 {
18 this.NotifyObservers();
19 }
20
21 public void RegisterObserver(IObserver paramIObserver)
22 {
23 myList.Add(paramIObserver);
24 }
25
26 public void RemoveObserver(IObserver paramIObserver)
27 {
28 myList.Remove(paramIObserver);
29 }
30
31 public void NotifyObservers()
32 {
33 foreach (IObserver observer in myList)
34 {
35 observer.Update(temperature, humidity, pressure);
36 }
37 }
38 }
源代码下载:/Files/wxj1020/WeatherStation.rar
相关文章推荐
- 《Head.First设计模式》的学习笔记(3)--观察者模式
- Java-马士兵设计模式学习笔记-观察者模式-OOD 封装Listener
- Java-马士兵设计模式学习笔记-观察者模式-读取properties文件,动态增加观察者
- 设计模式学习笔记(3):观察者模式(2)
- 《Head First 设计模式》学习笔记:策略模式与观察者模式
- 《Head First 设计模式》学习笔记之观察者模式
- 设计模式学习笔记-观察者模式
- java学习笔记-设计模式16(观察者模式)
- 设计模式学习笔记之观察者模式
- 设计模式学习笔记——观察者模式
- 设计模式C++学习笔记之十六(Observer观察者模式)
- 设计模式学习笔记-观察者模式
- 设计模式学习笔记-观察者模式
- 设计模式学习笔记--观察者模式
- Java学习笔记-观察者模式
- 设计模式学习笔记(二):观察者模式
- 设计模式学习笔记-观察者模式
- 步步为营 .NET 设计模式学习笔记 十二、Observer (观察者模式)
- 设计模式学习笔记-观察者模式
- 设计模式学习笔记--观察者模式