欢迎光临极品网,更多、更新的资源信息尽在Jpinw.Com!本站所有信息资源每日更新新的内容,请大家继续关注www.Jpinw.com!如果觉得本站还不错,对您有帮助,别忘了向您的朋友推荐本站!请记好本站网址:http://www.Jpinw.com,网站发展靠大家多多的支持!!!

极品网 极品课件 极品论文 极品文学 极品游戏 极品美容 极品手机资源 极品股票

#
免费资源: 免费域名 | 免费空间 | 免费推广 | 免费邮箱 | 免费硬盘 | 免费论坛 | 免费留言 | 免费统计 | 在线投稿 | 更多...
电脑学院: 操作系统 | 安全相关 | 网页设计 | 编程开发 | 建站经验 | 服务器类 | 黑客攻防 | 菜鸟入门 | 教你网赚 | 更多...
文章导航: 网赚学堂 | 网赚秘笈 | 网赚三维 | 网赚先锋 | 网赚资讯 | 感悟网赚 | 众生百态 | 经典美文 | 范文中心 | 更多...
图酷天下: 时事图酷 | 娱乐图酷 | 搞笑图酷 | 时尚图酷 | 体育图酷 | 另类经典 | 论文资源 | 课件下载 | 文学知识 | 更多...

您现在的位置: 极品网 >> 文章中心 >> CGI源码 >> 软件工程 >> 文章正文

[组图]设计模式之观察者模式           ★★★ 【字体:
设计模式之观察者模式
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-11-3    

 








//假设这里的地址是中文形式的 
33Notify(newAddress); 
34} 
35} 

看到上面的代码例子,我们可以给观察者模式的实现总结出这样几条规律:第一,被观察者必须保存着一个观察者列表。第二,所有的观察者必须实现一个统一的接口。

    那观察者模式到底有哪些好处呢?在上面的例子中我们可以看到被观察者仅仅依赖于一个实现了观察者接口的列表,我们可以随时的向这个列表添加观察者,而被观察者无须关注观察者是如何实现的。当我们向观察者族中添加一个新的观察者,被观察者无须作任何改变,新的类型只要实现了观察者接口即可。
在上面的描述中我们仿佛看到了面向接口编程无穷的力量,面向接口编程使实现依赖于接口,也就是实现依赖于抽象。这样在被依赖对象发生改变的时候,只要接口没有发生变化时,依赖对象无须作任何变动。

   在现实中存在着很多观察者模式的实例。比如在这个全民炒股的时代,每个持有股票的人总是不断的关注着自己所买的股票的走势,有人天天呆在交易大厅里看着屏幕上股票价格的走势,有人在工作时间盯着电脑里股票软件,为此很多公司采取各种各样的政策来制止这种行为,这样不仅影响正常的上班,且股票交易大厅常常人满为患。如果有这样一个服务,只要你订阅一个短信,这个服务就会在你所关注的股票价格发生变动的时候短信通知你,这样你就可以按照正常的顺序来做你的工作。

.net中的观察者模式

    在.net中,微软给我们带来一个更好的观察者模式的实现:事件-委托.

    在Gof的观察者模式中(姑且称之为经典设计模式吧),观察者必须实现一个统一的接口,在.net里这个接口由委托的签名来保证了,.net里的委托就是一个安全的函数指针(之所以说安全是与以前的C指针相比的,C的函数指针并不包括函数的签名比如参数等东西,所以可以传递一个并不是你期望的函数进去,导致运行时出错,由于这种错误在运行时发生,很难检查出来)。Ok,现在以一个.net的委托-事件的例子结束今天的观察者模式吧。

    描述:这是一个控制台程序,程序接收一个0到100之间整型的输入,程序接收到输入后开始一个从0到100的循环,当循环到你输入的数字的时候做一些处理,我们将以两种方式来描述这个实例,先用常规的方式,然后采用委托-事件的方式
 1public class Program 
 2
 3static void Main(string[] args) 
 4
 5Console.WriteLine("Please Input a 0-100 Number:"); 
 6int input = Console.Read(); 
 7if (input < 0 || input > 100
 8
 9Console.WriteLine("Error"); 
10}
 
11for (int i = 0; i <= 100; i++
12

 

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    极品网
    | 设为首页 | 加入收藏 | 友情链接 | 版权声明 |
    极品网

    Copyright 2006 Jpinw.com 极品网

    备案号:浙ICP备07010375号

    极品网