/************************************************************************************************** |
观察者模式: 定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己,文字浅显易懂,在实际应用中业务场景变幻莫测。
§ 场景1
当我们需要对不同的系统异常做不同的事务处理时:
1、 针对数据库异常做短信报警
2、 针对安全类异常做防范处理的决策支持
3、 针对接口类异常做更高优先级报警
4、 针对应用类异常,做不同分类日志记录
5、 ……
当然有些不是只用观察者可以解决的问题,暂时不讨论关联方案。类图如下:
代码示例:
http://download.csdn.net/download/webwalker/7470435
/// <summary>
/// 数据访问类异常
/// </summary>
public class DataAccessException : BaseException
{
DataAccessException()
{
ExceptionSubject s = new ExceptionSubject();
s.registerObserver(new MobileObserver(s));
s.registerObserver(new EmailObserver(s));
s.registerObserver(new DBLogObserver(s));
s.AppException = this;
s.notifyObserver();
}
}
$ 场景2
希望各位一起补充!