C#观察者模式(ObserverPattern)实例教程
2023-06-13 09:15:45 时间
本文以实例形式简单讲述了C#观察者模式,分享给大家供大家参考。具体实现方法如下:
现在假设有一个软件公司,每当有新产品推出,就把信息通知到一些客户。
把通知这个动作抽象成一个接口。代码如下所示:
publicinterfaceIService { voidNotif(); }
客户如果想获得通知,就需要实现以上的接口。这里的客户被看作是观察者。
publicclassCustomerA:IService { publicvoidNotif() { Console.WriteLine("客户A收到通知了~~"); } } publicclassCustomerB:IService { publicvoidNotif() { Console.WriteLine("客户B收到通知了~~"); } }
作为软件公司来讲,维护着一个客户的集合,并提供注册、取消注册的方法,往这个集合添加或删除客户。每当有通知的时候,就遍历客户集合,让IService执行通知。软件公司可以看作是一个被观察对象,或者说是发起动作的源头。
publicclassMyCompany { privateIList<IService>subscribers=newList<IService>(); publicvoidSubscribe(IServicesubscriber) { subscribers.Add(subscriber); } publicvoidCancelSubscribe(IServicesubscriber) { subscribers.Remove(subscriber); } publicvoidSendMsg() { foreach(IServiceserviceinsubscribers) { service.Notif(); } } }
客户端创建软件公司实例、创建观察者实例、注册或取消观察者等。
classProgram { staticvoidMain(string[]args) { MyCompanycompany=newMyCompany(); IServicecustomerA=newCustomerA(); IServicecustomerB=newCustomerB(); company.Subscribe(customerA); company.Subscribe(customerB); company.SendMsg(); Console.ReadKey(); } }
总结:
①
②
③
希望本文所述对大家C#程序设计的学习有所帮助。
相关文章
- 【100个 Unity实用技能】| C# 检查字典中是否存在某个Key的几种方法
- C#通过抽象工厂模式造车的案例分享
- 聊聊 C# 中的 Visitor 模式(访问者模式)
- 【愚公系列】2023年03月 .NET/C#知识点-拷贝文件的总结
- C如何关闭MySQL数据库的链接(c# 关闭mysql链接)
- C#多线程Singleton(单件)模式模板
- c#组合模式
- c#备忘录模式
- c#适配器模式
- c#设计模式适配器模式详细介绍
- C#设计模式之外观模式介绍
- C#利用ODP.net连接Oracle数据库的操作方法
- C#分支与循环介绍
- 水晶易表调用C#的WebService,返回数据集合的应用分析
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- C#装饰者模式实例分析
- C#设计模式之观察者模式实例讲解
- C#复合模式(CompositePattern)实例教程