中介者模式

This commit is contained in:
2020-07-21 16:44:35 +08:00
parent ec0a775c4b
commit eb1c68fd7e
3 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
package top.fjy8018.designpattern.pattern.behavior.mediator;
import java.util.Date;
import java.util.Timer;
/**
* 学习群组(中介者)
* <p>
* jdk源码 {@link Timer#schedule(java.util.TimerTask, Date)} 多个方法重载
* 都是调用{@link Timer#sched(java.util.TimerTask, long, long)} 实现的,由底层方法进行整体协调
*
* @author F嘉阳
* @date 2020/7/21 16:20
*/
public class StudyGroup {
public static void showMessage(User user, String message) {
System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
}
}

View File

@@ -0,0 +1,26 @@
package top.fjy8018.designpattern.pattern.behavior.mediator;
/**
* @author F嘉阳
* @date 2020/7/21 16:20
*/
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(String name) {
this.name = name;
}
public void sendMessage(String message) {
// 只和中介者交互
StudyGroup.showMessage(this, message);
}
}

View File

@@ -0,0 +1,19 @@
package top.fjy8018.designpattern.pattern.behavior.mediator;
import org.junit.jupiter.api.Test;
/**
* @author F嘉阳
* @date 2020/7/21 16:25
*/
class MediatorTest {
@Test
void doTest() {
User fjy = new User("F嘉阳");
User tom = new User("Tom");
fjy.sendMessage(" Hey! Tom! Let's learn Design Pattern");
tom.sendMessage("OK! F嘉阳");
}
}