2020-07-03

中介者模式

一、中介者模式介绍

1、定义与类型

定义一个封装一组对象如何交互的对象
通过使对象明确地相互引用来促进松散耦合,并允许独立地改变它们的交互
类型:行为型

2、适用场景

系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解
交互的公共行为,如果需要改变行为则可以增加新的中介者类

3、优点

将一对多转化成了一对一、降低程序复杂度
类之间解耦

4、缺点

中介者过多,导致系统复杂

5、相关设计模式

中介者模式和观察者模式:这两者经常结合使用

二、代码示例

模拟场景:用户在聊天室内聊天

用户类:

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 sendMessage(String message){  StudyGroup.showMessage(this, message); }}

聊天室类:

public class StudyGroup { public static void showMessage(User user, String message){  // 此处可结合观察者模式进行通知  System.out.println(new Date().toString() + "[" + user.getName() + "]" + message); }}

测试类:

public class Test { public static void main(String[] args) {  User tom = new User("tom");  User jery = new User("jery");  tom.sendMessage("hi");  jery.sendMessage("hello"); }}

输出:
Mon May 25 20:31:04 CST 2020[tom]hi
Mon May 25 20:31:04 CST 2020[jery]hello

三、源码示例

1、JDK中的Timer

中介者模式zen cartupc史泰博亚马逊无货源模式知识点总结(上)——记得拿小本本记下来智汇创想亲测,最新直评政策整理12点珠海拓展培训珠海拓展培训珠海拓展培训

No comments:

Post a Comment