设计模式学习(二十三):中介模式

设计模式,学习,二十三,中介,模式 · 浏览次数 : 45

小编点评

**设计模式学习(二十三):中介模式** **中介模式**是一种行为型模式,它将请求或操作传递给其他对象,让它们处理并返回给原始对象。 **中介模式中介模式**是一种更复杂的中介模式,它不仅处理请求,还要协调多个对象之间的通信。 **中介模式的优点** * 简化了流程,降低了耦合性。 * 增强了代码可读性。 * 改善了代码的可维护性。 **中介模式的示例** ```java public class ChatRoom { public static void showMessage(User user, String content) { System.out.println(\"user :\" + user.getName() + \" send a message, content is \" + content); } } class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void sendMessage(String content) { ChatRoom.showMessage(this, content); } } public class Main { public static void main(String[] args) { User user = new User("Peter"); user.sendMessage("Hello "); user = new User("Harry"); user.sendMessage("Hi"); } } ``` **UML 图** ``` [Client] --> [中介] --> [服务器] ``` **代码 UML 图** ```
```

正文

设计模式学习(二十三):中介模式

作者:Grey

原文地址:

博客园:设计模式学习(二十三):中介模式

CSDN:设计模式学习(二十三):中介模式

中介模式

中介模式是一种行为型模式。

举个简单的例子,如果一个聊天室里面的用户1和用户2要聊天,聊天室就相当于中介的地位,用户1和用户2只管调用发消息方法,聊天室即可把消息给对方

public class ChatRoom {
    public static void showMessage(User user, String content) {
        System.out.println("user :" + user.getName() + " send a message, content is " + content);
    }
}

以上代码表示,聊天室将 user 说的 content 展示出来

主方法只需要如下调用即可:

public class Main {
    public static void main(String[] args) {
        User user = new User("Peter");
        user.sendMessage("Hello ");
        user = new User("Harry");
        user.sendMessage("Hi");
    }
}

User 中的 sendMessage 方法

public void sendMessage(String content){ChatRoom.showMessage(this,content);}

上述示例的 UML 图如下

image

中介模式应用

  • JDK 中的 Timer.schedule()

UML 和 代码

UML 图

代码

更多

设计模式学习专栏

参考资料

与设计模式学习(二十三):中介模式相似的内容:

设计模式学习(二十三):中介模式

设计模式学习(二十三):中介模式 作者:Grey 原文地址: 博客园:设计模式学习(二十三):中介模式 CSDN:设计模式学习(二十三):中介模式 中介模式 中介模式是一种行为型模式。 举个简单的例子,如果一个聊天室里面的用户1和用户2要聊天,聊天室就相当于中介的地位,用户1和用户2只管调用发消息方

设计模式学习(二十四):Spring 中使用到的设计模式

设计模式学习(二十四):Spring 中使用到的设计模式 作者:Grey 原文地址: 博客园:设计模式学习(二十四):Spring 中使用到的设计模式 CSDN:设计模式学习(二十四):Spring 中使用到的设计模式 观察者模式 定义一个继承 ApplicationEvent 的事件;定义一个实现

设计模式学习(二十):备忘录模式

设计模式学习(二十):备忘录模式 作者:Grey 原文地址: 博客园:设计模式学习(二十):备忘录模式 CSDN:设计模式学习(二十):备忘录模式 备忘录模式 备忘录模式是一种行为型模式。 用于记录对象的某个瞬间,类似快照的功能, 应用实例: 游戏中的「后悔药」; 打游戏时的存档; Windows

设计模式学习(二十一):命令模式

设计模式学习(二十一):命令模式 作者:Grey 原文地址: 博客园:设计模式学习(二十一):命令模式 CSDN:设计模式学习(二十一):命令模式 命令模式 命令模式是一种行为型模式。 通过调用者调用接受者执行命令,执行顺序是: 调用者→命令→接受者 ```, 如下示例,CopyCommand 中的

设计模式学习(二)工厂模式——工厂方法模式+注册表

目录工厂方法模式的瑕疵注册表 工厂方法模式的瑕疵 在前一篇笔记中我们介绍了工厂方法模式,示例的类图如下: 考虑一种情况:现在要在程序运行时,根据外部资源,动态的实例化对象。也就是说在编译期我们无法知道要实例化的对象的类型。因此在实例化的过程中,就需要加以判断。 例如,在我的例子中,要根据连接到主机的

设计模式学习(二十二):解释器模式

设计模式学习(二十二):解释器模式 作者:Grey 原文地址: 博客园:设计模式学习(二十二):解释器模式 CSDN:设计模式学习(二十二):解释器模式 解释器模式 解释器模式是一种行为型模式。 解释器模式为某个语言定义它的语法(或者叫文法)表示,并定义一个解释器用来处理这个语法。 一般用于脚本语言

设计模式学习(二):单例模式

设计模式学习(二):单例模式 作者:Grey 原文地址: 博客园:设计模式学习(二):单例模式 CSDN:设计模式学习(二):单例模式 单例模式 单例模式是创建型模式。 单例的定义:“一个类只允许创建唯一一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。”定

设计模式学习(十三):观察者模式

设计模式学习(十三):观察者模式 作者:Grey 原文地址: 博客园:设计模式学习(十三):观察者模式 CSDN:设计模式学习(十三):观察者模式 观察者模式 观察者模式是一种行为型模式。在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。 一般可以用做事件处理

【23种设计模式】工厂方法模式(二)

## 前言 在讲述之工厂方法模式前,我们来先了解简单工厂模式,简单工厂模式是最简单的设计模式之一,它虽然不属于GoF的23种设计模式,但是应用也较为频繁,同时它也是学习其他创建型模式的基础。下面我们来先了解下简单工厂模式,然后针对它的缺点来引出工厂方法模式。 ## 简单工厂模式定义 **简单工厂模式

Vue3学习(二十四)- 文档页面功能开发

写在前面 这部分真的感觉超级难,其实也不能说难,主要是真的想不到这个思路应该这么做,或者说他好厉害,他怎么知道该这么设计实现。 说下难点吧,我觉得后天逻辑还好,主要是前端部分真的需要点花点时间来思考,比如布局、交互设计的实现等等。 文档页面功能开发 1、任务拆解 增加文档页面,首页点击电子书时,跳转