设计模式面对面之订阅模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式面对面之订阅模式相关的知识,希望对你有一定的参考价值。
订阅模式
订阅模式主要涉及到三种对象:订阅对象,发布对象,分发对象。
案例没对这三种对象做抽像,大家可以根据应用场景去扩展。
类图:
常用的实现方式:
订阅对象
//订阅对象 public class Subscribe { public string Name; public Subscribe(string name) { Name = name; } public void Receive(string message) { Console.WriteLine($"{Name}评价:{message}"); } }
发布对象
//发布对象 public class Publisher { public delegate void PublisherEventHandler(string message); public event PublisherEventHandler PublisherEvent; public void Publish() { PublisherEvent?.Invoke("这首歌曲真好听!"); } }
分发对象
//分发对象 public class Destributer { public void Destribute() { var subscribe1=new Subscribe("subscribe1"); var subscribe2 = new Subscribe("subscribe2"); var publisher = new Publisher(); publisher.PublisherEvent += subscribe1.Receive; publisher.PublisherEvent += subscribe2.Receive; publisher.Publish(); } }
调用
class Program { static void Main(string[] args) { var destributer=new Destributer(); destributer.Destribute(); Console.ReadLine(); } }
使用场景:
常用来解决消息的分发。
以上是关于设计模式面对面之订阅模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式 行为型模式 -- 观察者模式(发布-订阅(Publish/Subscribe)模式)