观察者模式,所谓观察者模式我个人认为就是一对多关系的依赖关系,核心内容在于发送者更新后传递给观察者 职责明确,发送者不需要知道观察者的具体工作内容,观察者只必须需要知道获取的数据格式然后按照相应的格式处理就是了。
以下是自己做的一个Demo 并加以说明
1
接口 使用以下接口的好处是只要是符合接口定义的消息规则的信息都适用
29![]()
30
发送者类 一共2种,黄金和股票
131![]()
132
接收者 可以任意接收符合发送规格的主题信息
155![]()
156
class Program
157
{
158
static void Main(string[] args)
159
{
160
//定义发送者股票
161
ISender stock1 = new stock_1("工商银行","3.80");
162
//定义发送者黄金
163
ISender gold1 = new gold("黄金行情", "160.58");
164
//定义3个观察者 观察者既能接收黄金行情 也能接收股票行情
165
IObserver observer1 = new Observer_1("老头");
166
IObserver observer2 = new Observer_1("年轻人");
167
IObserver observer3 = new Observer_1("中年人");
168
Console.WriteLine("--------------以下是股票行情----------------");
169
stock1.Add(observer1);
170
stock1.Add(observer2);
171
stock1.Add(observer3);
172
stock1.Update();
173
Console.WriteLine("--------------以下是黄金行情----------------");
174
gold1.Add(observer1);
175
gold1.Add(observer2);
176
gold1.Add(observer3);
177
gold1.Update();
178
Console.WriteLine("--------------黄金价格改变后,黄金行情----------------");
179
gold1.Price = "161.56";
180
gold1.Update();
181![]()
182
Console.Read();
183
}
184
}
接口 使用以下接口的好处是只要是符合接口定义的消息规则的信息都适用29

30
发送者类 一共2种,黄金和股票131

132
接收者 可以任意接收符合发送规格的主题信息155

156
class Program157
{158
static void Main(string[] args)159
{160
//定义发送者股票161
ISender stock1 = new stock_1("工商银行","3.80");162
//定义发送者黄金163
ISender gold1 = new gold("黄金行情", "160.58");164
//定义3个观察者 观察者既能接收黄金行情 也能接收股票行情165
IObserver observer1 = new Observer_1("老头");166
IObserver observer2 = new Observer_1("年轻人");167
IObserver observer3 = new Observer_1("中年人");168
Console.WriteLine("--------------以下是股票行情----------------");169
stock1.Add(observer1);170
stock1.Add(observer2);171
stock1.Add(observer3);172
stock1.Update();173
Console.WriteLine("--------------以下是黄金行情----------------");174
gold1.Add(observer1);175
gold1.Add(observer2);176
gold1.Add(observer3);177
gold1.Update();178
Console.WriteLine("--------------黄金价格改变后,黄金行情----------------");179
gold1.Price = "161.56";180
gold1.Update();181

182
Console.Read();183
}184
}


浙公网安备 33010602011771号