中介者模式
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