diff --git a/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/StudyGroup.java b/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/StudyGroup.java new file mode 100644 index 0000000..12b6493 --- /dev/null +++ b/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/StudyGroup.java @@ -0,0 +1,20 @@ +package top.fjy8018.designpattern.pattern.behavior.mediator; + +import java.util.Date; +import java.util.Timer; + +/** + * 学习群组(中介者) + *
+ * 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); + } +} diff --git a/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/User.java b/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/User.java new file mode 100644 index 0000000..2124da4 --- /dev/null +++ b/src/main/java/top/fjy8018/designpattern/pattern/behavior/mediator/User.java @@ -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); + } +} diff --git a/src/test/java/top/fjy8018/designpattern/pattern/behavior/mediator/MediatorTest.java b/src/test/java/top/fjy8018/designpattern/pattern/behavior/mediator/MediatorTest.java new file mode 100644 index 0000000..3a41a70 --- /dev/null +++ b/src/test/java/top/fjy8018/designpattern/pattern/behavior/mediator/MediatorTest.java @@ -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嘉阳"); + } +} \ No newline at end of file