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

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

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

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

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

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

2、 抽象观察者(Observer)

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

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

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

4、 具体观察者(ConcreteObserver)

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

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

以上就是C#对观察者(Observer)模式的支持(一)的内容,更多相关内容请关注龙方网络(www.yzlfxy.com)!

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: