中介者模式是用來降低多個對象和類之間的通信複雜性。這種模式提供了一個中介類,該類通常處理不同類之間的通信,並支持松耦合,使代碼易於維護。 前言 中介者模式屬於行為者模式,通過一個中介對象來封裝一些列的對象交互,使對象之間解耦和,降低系統複雜度。 類圖描述 代碼實現 1、創建中介類 2、創建實體 3、 ...
中介者模式是用來降低多個對象和類之間的通信複雜性。這種模式提供了一個中介類,該類通常處理不同類之間的通信,並支持松耦合,使代碼易於維護。
前言
中介者模式屬於行為者模式,通過一個中介對象來封裝一些列的對象交互,使對象之間解耦和,降低系統複雜度。
類圖描述
代碼實現
1、創建中介類
public class ChatRoom
{
public static void ShowMessage(User user, string message)
{
Console.WriteLine($"{DateTime.Now} [{user.GetName()}]:{message}");
}
}
2、創建實體
public class User
{
private string name;
public User(string name)
{
this.name = name;
}
internal object GetName()
{
return this.name;
}
public void SetName(string name)
{
this.name = name;
}
public void SendMessage(string message)
{
ChatRoom.ShowMessage(this, message);
}
}
3、上層調用
class Program
{
static void Main(string[] args)
{
User robert = new User("Robert");
User john = new User("john");
robert.SendMessage("Hi! John!");
john.SendMessage("Hello! Robert");
Console.ReadKey();
}
}
總結
中介者模式通過為多個對象提供統一的通信方式進而簡化對象之間的複雜引用關係,但是這種模式應該適可而止,否則到時候會使中介者過於龐大而難以維護。