zoukankan      html  css  js  c++  java
  • 设计模式面对面之订阅模式

    订阅模式

    订阅模式主要涉及到三种对象:订阅对象,发布对象,分发对象。

    案例没对这三种对象做抽像,大家可以根据应用场景去扩展。

    类图:

    常用的实现方式:

    订阅对象

    //订阅对象
    public class Subscribe
        {
    
            public string Name;
    
            public Subscribe(string name)
            {
                Name = name;
            }
            public void Receive(string message)
            {
                Console.WriteLine($"{Name}评价:{message}");
            }
        }
    View Code

    发布对象

    //发布对象
     public class Publisher
        {
            public delegate void PublisherEventHandler(string message);
            public event PublisherEventHandler PublisherEvent;
    
            public void Publish()
            {
                PublisherEvent?.Invoke("这首歌曲真好听!");
            }
    
        }
    View Code

     分发对象

    //分发对象
     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();
    
            }
    
        }
    View Code

     调用

    class Program
        {
            static void Main(string[] args)
            {
                var destributer=new Destributer();
    
                destributer.Destribute();
                Console.ReadLine();
            }
        }
    View Code

     使用场景:

    常用来解决消息的分发。

  • 相关阅读:
    DRF JWT认证基础
    Shell简单脚本
    DockerFile案例
    Shell基础知识
    DockerFile基础知识
    tensorflow
    使用cv2将图片分割成相等的部分
    序列化心得
    python正则化表达式
    python--匿名函数(lambda)
  • 原文地址:https://www.cnblogs.com/dujq/p/7808618.html
Copyright © 2011-2022 走看看