设计模式之观察者模式 (原创)
来源:互联网 发布:猪八戒考试软件app 编辑:程序博客网 时间:2024/04/29 15:06
本人认为观察者模式和C#中委托的功能是相似的,但。。。机制很不一样。。。可以参看我写的C# 委托机制一文。观察者模式和委托都是在一对多的情况下,当事件发送者产生事件后,由观察者接收,并产生相应的动作(虽然都是同一接口,但。。。实现却是在内部,所以,我叫你吃饭,你可以去吃麻辣烫)。
当然,你还可以绑定多个事件处理方法。在这里,我举个例子,一个出版社和各分销商的例子。各分销商是观察者。作为出版社的分销商,他是需要在出版社注册备案的。即有个方法,要在出版社方,我们定位Register方法,这个方法的接口,是ISubject 下的抽象方法(实现这个接口的类就是目标类即Subject)。另外,出版社的任何动态,比如出新书,都需要即时通知分销商的。所以,要建立这个通讯机制,就需要一个接口,来保证实现这个接口的所有对象,都能被出版社通知到。就有了个Notice这个方法,当然,他也是包装在一个接口内的。好了,这下,当事件的目标一旦有了消息,就会调用其中的方法,并把在其中注册的成员,逐个通知到。
接口: interface Isubject{ void Regitser();};
interface Inotice{void notice();}
需要一个数组来容纳注册过的分销商(当然你也可以用链表)
ArraList observers = new ArraList ();
目标类的注册方法 public void Register (Onserver o ){observers.add(o);}把传进来的分销商加进容器内。
还有就是要产生指令让观察者接收时需要一个方法 void Dosth()
foreach(observer o in observers)
{ //通知他们干傻事。。。。 }
我想这个样应该说清楚了吧?如果路过朋友需要其它好点的实例,可以给我发邮件 xxqq0824@163.com,给你本好书以及源码 叫C#设计模式 ,很经典哦~不过是pdg的,唉,谁叫俺目前只能看C,不能看E,要不然也看PDF了。
- 设计模式之观察者模式 (原创)
- 设计模式之Observer(观察者模式)
- 设计模式之Observer(观察者模式)
- 【设计模式】之观察者模式(Observer)
- 设计模式之--观察者模式(Observer)
- 设计模式之观察者模式(二)
- 设计模式之观察者模式(Obsever)
- 设计模式之观察者(Observer)模式
- 设计模式之观察者(observer)模式
- 设计模式之观察者模式(Observer)
- 设计模式之观察者模式(一)
- 设计模式之观察者模式(二)
- 设计模式之观察者模式(三)
- 设计模式之-观察者模式(Observer)
- 设计模式之观察者模式(Observer)
- 设计模式(七)之观察者模式
- 设计模式之观察者模式(Observer)
- 设计模式之观察者模式(Observer)
- 在Windows 2003下创建软RAID完全手册
- C++求1-100的质数编程
- 随意玩
- 可怜的金刚
- 伤心----------绝望
- 设计模式之观察者模式 (原创)
- 共享程序集和私有程序集的使用 (原创)
- 《C游戏编程从入门到精通》第五章——直接写屏(前几章跳过)
- 对称算法和不对称算法、加密以及数字签名 (原创)
- 终于搞定了无刷新,即所谓的web脚本替换
- “平凡人”王曦
- XP 技巧(1)
- ASP.NET生成HTML文件的方法
- PpLK: |Practical Java| Chapter 4 Performance (性能) (一)