• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

C#对观察者(Observer)模式的支持(一)

c# 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论

首先先让我们了解一下什么是观察者模式,观察者模式是对象的行为型模式,又叫依赖/从属者模式、发布-订阅模式、源-监听模式。观察者模式:定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新(GOF)。

如我们的项目中有一个邮件系统,当发送邮件时可本文来源gao($daima.com搞@代@#码(网5能需要发送手机短信和RTX信息通知邮件接收者,这时就可以用观察者模式进行设计,如果以后还需要增加第三种通知方式,那么我们的系统会很容易的把新通知方式加入进来。观察者模式在C#中应用的也很多,最常见的就是我们用到各种控件的事件监听机制。

观察者模式的实现中有四种类型的参与者,分别:

1、 抽象主题/目标(Subject)

它可以有任意多个的观察者,并在一个集合对象中保存对观察者的引用,并提供增加和删除观察者对象的接口,一般用一个抽象类和接口实现。

2、 抽象观察者(Observer)

为所有的具体观察者定义的一个更新接口,当主题/目标发生变化时,通知具体观察者更新自己。通常用一个抽象类或接口实现。

3、 具体主题/目标(ConcreteSubject)

将有关的状态存入具体观察者对象,当它的状态发生改变时,向所有注册的观察者发出通知。具体主题/目标又被称为被观察者。

4、 具体观察者(ConcreteObserver)

维护一个指向具体主题/目标的引用,并存储与具体主体/目标一致的相关状态,并实现一个具体的抽象观察者的更新接口,以使自身状态与主题/目标状态保持一致。

我们用观察者模式实现一个简单的邮件发送系统,并且发送邮件的同时发送手机短信和RTX消息通知邮件接收者。

以上就是C#对观察者(Observer)模式的支持(一)的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C#对观察者(Observer)模式的支持(一)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址