中介者模式
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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嘉阳");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user