C#Observer设计模式(报警系统)

本文介绍了一个使用C#开发的指标报警系统,通过Web Service获取数据库中的指标数据,实现实时监控和报警。系统采用Observer设计模式,确保了组件之间的松耦合。Configurator负责配置读写,Monitor获取指标,Alarmer进行指标判断,Handler处理报警结果,Initializer和Initiator提供对象初始化和封装。参考了相关资料深入理解Observer模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学C#,需要开发一个指标报警系统,大致可以这么简单描述:

指标数据源已经存在于数据库,需要通过Web Service访问它获取某指标,接着根据报警配置判断指标是否合法产生报警行为。要求实时监控,实时报警,扩展性强。


在这个解决方案中,我写了两个project,一个是Web Service获取指标的project,一个是具体的报警project。Web Service很简单,只需模拟出取指标的环境,接着在报警的project中添加Web Service引用,能获取指标即可。

Web Service可以参考:

http://www.cnblogs.com/denylau/archive/2010/07/23/1783530.html


剩下就是报警系统的具体开发了,我设计了如下六个类,这六个类的主要内容如下:

1)Configurator:只负责报警配置的读与写。

2)Monitor:只负责实时获取源数据中的指标(利用Web Service)。指标值被Alarmer监听,每获取一个指标值,就触发Alarmer中的指标判断事件。

3)Alarmer:只负责判断当前这个时刻的指标值是否合法。维护一个指标队列,用于实现历史监控报警功能。指定的报警状态被Handler监听。

4)Handler:只负责处理报警结果。

5)Initializer:负责初始化上述对象所需要的参数。

6)Initiator:负责封装以上全部对象。

其中类1、2、3、4就是一个整体的“规则设置+监控指标+指标判断+结果处理”模块;类5、6是提供该模块更好的封装性,方便主程序中使用多线程。


其中我两次用到了Observ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值