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

     使用场景:

    常用来解决消息的分发。

  • 相关阅读:
    MYsql增删改查
    粘包问题
    模拟ssh远程执行命令
    Socket抽象层
    基于TCP协议的socket套接字编程
    TCP协议的三次握手和四次挥手
    大话OSI七层协议
    网络架构及其演变过程
    互联网和互联网的组成
    Windows安装MySQL
  • 原文地址:https://www.cnblogs.com/dujq/p/7808618.html
Copyright © 2011-2022 走看看