通過介面實現,實現松耦合。 主窗體 子窗體1 子窗體2、3 ...
通過介面實現,實現松耦合。
- 通過中介者(主窗體),子窗體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(); } }