Person.java
public class Person {
private String firstName, lastName;
private ChatGroup chatGroup;
public ChatGroup getChatGroup() {
return chatGroup;
}
public void setChatGroup(ChatGroup chatGroup) {
this.chatGroup = chatGroup;
}
public Person(String firstName, String lastName){
this.firstName=firstName;
this.lastName=lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String toString(){
return lastName+","+firstName;
}
public void sendMessage(String message){
chatGroup.sendMessage(this, message);
}
}
ChatGroup.java
import java.util.Date;
public class ChatGroup {
public void sendMessage(Person person, String message){
System.out.println(new Date()+"\n"+person +":"+message);
System.out.println("------------------------------------------------");
}
}
MediatorPatternDemo.java
public class MediatorPatternDemo {
public static void main(String[] args) {
//create Persons
Person Mina = new Person("Mina","Jose");
Person Tina = new Person("Tina","Bose");
Person Hina = new Person("Hina","Firose");
Person Ina = new Person("Ina","Mose");
//Create Group of persons
ChatGroup chatGroup = new ChatGroup();
Mina.setChatGroup(chatGroup);
Tina.setChatGroup(chatGroup);
Hina.setChatGroup(chatGroup);
Ina.setChatGroup(chatGroup);
//send the messages
Mina.sendMessage("Hey I am mina technician");
Tina.sendMessage("Hey I am tina, I play Guitar");
Hina.sendMessage("Hello I am Hina, I love violin");
Ina.sendMessage("Hi everybody, I am singer");
}
}
Output
