zoukankan      html  css  js  c++  java
  • 观察者-中介者设计模式(非委托实现方式)

    通过接口实现,实现松耦合。

    1. 通过中介者(主窗体),子窗体1中没有任何任何其它子窗体的信息,实现观察者与被观察者之间的彻底解耦。

    主窗体

    public partial class mainform : Form
        {
            public mainform()
            {
                InitializeComponent();
            }
    
            private void butMessage_Click(object sender, EventArgs e)
            {
                childform1 c1 = new childform1();
                c1.Show();
                childform2 c2 = new childform2();
                c1.messageonList.Add(c2);
                c2.Show();
                childform3 c3 = new childform3();
                c1.messageonList.Add(c3);
                c3.Show();
            }
        }

    子窗体1

     public partial class childform1 : Form
        {
            public childform1()
            {
                InitializeComponent();
                messageonList = new List<ImessageOn>();
            }
    
            //这个集合放我们的观察者
            public List<ImessageOn> messageonList { get; set; }
    
            private void butMessage_Click(object sender, EventArgs e)
            {
                foreach(var messageon in messageonList)
                {
                    messageon.ReceiveMessage("小明");
                }
            }
        }

    子窗体2、3

    public partial class childform2 : Form,ImessageOn
        {
            public childform2()
            {
                InitializeComponent();
            }
    
            public void ReceiveMessage(string str)
            {
                this.textMessage.Text = str + " " + DateTime.Now.ToString();
            }
        }

  • 相关阅读:
    截图插件
    断点续传
    sql server 将日期减一天
    C# 输出24小时格式时间
    蓝桥 凑平方数
    九宫重排
    HDU 1584
    HDU 2612 (两边一起)
    HDU 1016 Prime Ring Problem
    全排列、排列、排列组合
  • 原文地址:https://www.cnblogs.com/janghe/p/7711395.html
Copyright © 2011-2022 走看看