设计模式面对面之订阅模式
订阅模式
订阅模式主要涉及到三种对象:订阅对象,发布对象,分发对象。
案例没对这三种对象做抽像,大家可以根据应用场景去扩展。
类图:
常用的实现方式:
订阅对象
//订阅对象 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(); } }
使用场景:
常用来解决消息的分发。