《设计模式 ● 观察者》之业务场景

本文深入探讨了观察者模式在复杂业务场景中的应用,通过实例展示了如何利用此模式进行异常处理、日志记录等操作,以及如何在实际项目中识别并整合多种模式以提高系统的灵活性和可维护性。

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

/**************************************************************************************************
** 模式的初衷,无非是为我们经常出现问题的业务逻辑或系统结构提供好的解决方案,不论
** 是高层的还是较低层次的;而应用模式的主要工作则是模式识别,能将单一或复合的模式
** 结合项目自身的业务特性放在适当的场景中,则需要努力追求和不断积累。
************************************************************************************************/

 

      观察者模式: 定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己,文字浅显易懂,在实际应用中业务场景变幻莫测。

§ 场景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

 

希望各位一起补充!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值