美文网首页
{C#}设计模式辨析.中介者

{C#}设计模式辨析.中介者

作者: 码农猫爸 | 来源:发表于2021-08-11 08:04 被阅读0次

    背景

    • 成员间通过中介者传话

    示例

    using static System.Console;
    
    namespace DesignPattern_Mediator
    {
        using static System.Console;
    
    namespace DesignPattern_Mediator
    {
        // 成员接口
        public interface IMemeber
        {
            void Send(IMemeber to, string message);
            void Recieve(IMemeber fm, string message);
        }
    
        // 成员类
        public class Member : IMemeber
        {
            private readonly string name;
            private readonly ChatRoom room;
    
            public Member(string name, ChatRoom room)
            {
                this.name = name;
                this.room = room;
            }
    
            // 通过中介联络
            public void Send(IMemeber to, string message)
                => room.Send(this, to, message);
    
            public void Recieve(IMemeber fm, string message)
                => WriteLine($"{fm} to {this}: {message}");
    
            public override string ToString() => name;
        }
    
        // 中介者接口
        public interface IChatRomm
        {
            void Send(IMemeber fm, IMemeber to, string message);
        }
    
        // 中介者类
        public class ChatRoom : IChatRomm
        {
            public ChatRoom() { }
    
            public void Send(IMemeber fm, IMemeber to, string message)
            {
                to.Recieve(fm, message);
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                var room = new ChatRoom();
                var zhang = new Member("Zhang", room);
                var li = new Member("Li", room);
    
                zhang.Send(li, "Hello");
                li.Send(zhang, "Hi");
    
                ReadKey();
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:{C#}设计模式辨析.中介者

          本文链接:https://www.haomeiwen.com/subject/ppjtbltx.html