您的位置:首页 > 其它

Observer 在对象之间定义一个一对多的依赖关系,从而当一个对象状态发生改变时,所有依赖于这个对象的对象都能够得到通知,并对上述改变做出反应.

2006-12-31 10:24 531 查看
public class Interesting
2 public class Curious
2 public delegate void ChangeHandler();
2
//observer
2 Gof.Nan.Test.Interesting i = new Gof.Nan.Test.Interesting();
3 Gof.Nan.Test.Curious c = new Gof.Nan.Test.Curious(i);
4 i.Wiggle();
上面的例子我们用委托来声明一个回调,这样很不安全任何一个可以访问Interesting类的_change的类都可以调用这个委托.可以直接调用i._change();试下,我们可以用Event关键字来加强这种限制.

public class Interesting
2{
3 public event ChangeHandler _change;
4 public void Wiggle()//事件引起变化
5 {
6 if (_change != null)
7 {
8 _change();
9 }
10 }
11}
这时我们在用i._change();调用系统就会提示事件只能出现在+=或-=的左边.
Gui中的观察者模式
没时间了,有时间在学习了.
The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically.

Design Principles:
Strive for loosely coupled designs between objects that interact.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐