Categories
Algorithms & Design Design Pattern

Mediator Pattern

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

Leave a comment

Design a site like this with WordPress.com
Get started