C#设计模式-观察者模式(Observer Pattern)[FreeDownload]

观察者模式应用非常之广,是我最喜爱的设计模式之一。

常用的数据库管理系统中有这种情况:
客户要求数据字典改变后要实时更新相关业务窗体的数据。

如下图[销售单]和[采购单]业务窗体中分别有货币和单位数据字典选择框。货币和单位数据是在打开窗体
时加载的,假设客户需要增加一个货币或单位,在不关闭[销售单]和[采购单]窗体的前提下,如何使货币和单位数据保持最新?

使用观察者模式正是解决上述问题的最佳方案之一!所谓

十年久旱逢甘雨
千里他乡遇故知
和尚洞房花烛夜
老童金榜提名时

来看看这个案例的威力吧!

几个关键接口

代码
//by 易学原创,www.vjsdn.net

/// <summary>

/// 观察者模式接口

/// </summary>

public interface IObserver

{

//仅一个方法,通知(Notify)观察者接收到消息

void Notify();

}



/// <summary>

/// 支持数据字典观察者的窗体,比如Invoice,PO,PN等业务窗体

/// Lookup功能视为数据字典观察者

/// </summary>

public interface IObserverSupportable

{

//获取观察者列表, 通常业务窗体内会对应多个数据字典表

IList GetObservers();

}



/// <summary>

/// 数据字典窗体

/// </summary>

public interface IObserverDataDictForm

{

//

//注册观察者,当字典数据改变时通知所有观察者同步更新数据.

//

//一个数据字典可能会关联多个业务窗体.比如货币字典会在采购窗体和发票窗体内使用.

//因此,当字典数据改变时要通知采购窗体和发票窗体刷新数据.

//

void RegisterObserver(IList observers);

}


//by 易学原创,www.vjsdn.net

}

 

下载慢慢享受吧~

 

posted on 2010-07-28 11:59  raychn  阅读(555)  评论(0编辑  收藏  举报