本文主要是介绍设计模式学习笔记:中介者模式(Mediator),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、中介者模式介绍
- 二、实现
- 1、需求场景
- 2、设计
- 3、代码实现
- 4、测试结果
保持乐观的心态很重要。
一、中介者模式介绍
中介者模式是设计模式中行为型模式的一种。这种模式提供了一个中介类,该类处理不同类之间的通信,降低类与类之间的耦合度,使代码易于维护。
二、实现
1、需求场景
设计一个聊天系统,用户之间可以相互聊天。
2、设计
3、代码实现
User(用户类):
/*** 用户类** @author ZhengNC* @date 2020/10/14 17:39*/
public class User {private String name;private Mediator mediator;public User(String name){this.name = name;}public void setMediator(Mediator mediator){this.mediator = mediator;}public String getName(){return name;}/*** 发送消息** @param msg 消息* @param name 接收人的名字*/public void send(String msg, String name){mediator.relay(msg, name);}/*** 接收消息** @param msg 消息*/public void receive(String msg){System.out.println("[" + name + "]收到消息:" + msg);}
}
Mediator(中介者类):
import java.util.ArrayList;
import java.util.List;/*** 中介者类** @author ZhengNC* @date 2020/10/14 17:44*/
public class Mediator {private final List<User> userList = new ArrayList<>();public void register(User user){userList.add(user);user.setMediator(this);}/*** 转发消息** @param msg 消息* @param name 接收人的名字*/public void relay(String msg, String name){for (User user : userList){if (name.equals(user.getName())){user.receive(msg);return;}}System.out.println("未找到接收消息的用户!");}
}
TestMediator(测试中介者模式):
/*** 测试中介者模式** @author ZhengNC* @date 2020/10/14 17:56*/
public class TestMediator {public static void main(String[] args) {Mediator mediator = new Mediator();User user1 = new User("user1");User user2 = new User("user2");mediator.register(user1);mediator.register(user2);user1.send("hello user2", "user2");user2.send("hello user1", "user1");}
}
4、测试结果
[user2]收到消息:hello user2
[user1]收到消息:hello user1
这篇关于设计模式学习笔记:中介者模式(Mediator)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!