机房收费系统之观察者模式

本文探讨了在机房收费系统中如何应用观察者模式。通过观察者模式,可以实现在上机、下机和强制下机时,系统自动通知并更新与卡状态、余额等相关联的观察者。文章还提到了抽象被观察者和观察者的接口,以及具体被观察者和观察者的实现,包括添加、删除和通知操作。示例代码展示了下机类作为被观察者,以及卡存在、上机记录和卡余额更新作为观察者的应用场景。
摘要由CSDN通过智能技术生成

  这次合作机房收费系统时,经过思考,在上下机那儿觉得既可以用状态模式还可以用观察者模式。

 

  观察者模式:(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式)他定义一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

UML图:

  抽象被观察者提供一个借口让观察者进行添加和删除观察者。

    添加(Attach):新增观察者,一追踪目标对象的变化。

    删除(Detach):将已有的观察者删除。

    通知(Notify):利用观察者提供的更新函数来通知此目标已经产生变化。

  抽象观察者有一个虚拟的更新(Update)方法,每天具体的观察者要实现自己的更新方法。当目标对象改变时,会呼叫自己的通知函数来通知给每一个观察者,观察者实现自己的更新方法。


  机房合作时上机、下机和强制下机可以用观察者模式。上机、下机和强制下机时具体的被观察者,判断卡是否存在,卡余额是否足够,卡是否正在上机等都是具体的观察者。这里为了练习,上机我用了宁外一个模式。下机、强制下机用观察者模式的UML图:

  具体被观察者下机类的代码:

  

'观察者列表
    ''Private ilist As IList(Of ObserverBLL)
    Private ilist As IList(Of ObserverBLL) = New List(Of ObserverBLL)

    ''' <summary>
    ''' 添加观察者
    ''' </summary>
    ''' <par
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值