C# 设计模式 行为型模式 之 中介者模式

中介者模式 是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

实例:MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)的中介者。

优点: 1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。

下面通过 代码示例 展示 中介者模式:

namespace 中介者模式
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //使用 User 对象来显示他们之间的通信
            User user1 = new User("张三");
            User user2 = new User("李四");
            user1.ShowMessage("你好李四");
            user2.ShowMessage("你好张三");
            /*
             * 控制台:
             *  2022/10/30 19:23:36:张三发送消息为:你好李四
                 2022/10/30 19:23:36:李四发送消息为:你好张三
             */

        }
    }
    //创建中介类
    public class ChatRoom
    {
        public static void ShowMessage(User user, string msg)
        {
            Console.WriteLine($"{DateTime.Now}:{user.GetName()}发送消息为:{msg}");
        }
    }
    //通信的 user
    public class User
    {
        private string name;
        public User(string name)
        {
            this.name = name;
        }
        public string GetName()
        {
            return name;
        }
        public void SetName(string name)
        {
            this.name=name;
        }
        public void ShowMessage(string msg)
        {
            ChatRoom.ShowMessage(this, msg);
        }
    }
}

缺点:中介者会庞大,变得复杂难以维护。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值