1. 程式人生 > >設計模式系列 - 中介者模式

設計模式系列 - 中介者模式

中介者模式是用來降低多個物件和類之間的通訊複雜性。這種模式提供了一箇中介類,該類通常處理不同類之間的通訊,並支援鬆耦合,使程式碼易於維護。

前言

中介者模式屬於行為者模式,通過一箇中介物件來封裝一些列的物件互動,使物件之間解耦和,降低系統複雜度。

類圖描述

程式碼實現

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();
    }
}

總結

中介者模式通過為多個物件提供統一的通訊方式進而簡化物件之間的複雜引用關係,但是這種模式應該適可而止,否則到時候會使中介者過於龐大而難以維護。