[java design pattern] mediator pattern

Step 1: Create the Mediator

public interface Mediator {
	//create mediator
    public void createMediator();
    
    public void workAll();
}

Step 2: Establish a concrete mediator implementer

public class MyMediator implements Mediator {

	 private User user1;
	 private User user2;
	 
	 public User getUser1() {
		return user1;
	}
	 public User getUser2() {
		return user2;
	}
	 
	
	@Override
	public void createMediator() {
		user1=new User1(this);
		user2=new User2(this);
	}

	@Override
	public void workAll() {
     user1.work();
     user2.work();
	}

}

Step 3: Create a colleague class interface User

public abstract class User {
   private Mediator mediator;
   
   public Mediator getMediator() {
	return mediator;
}
   public User( Mediator mediator) {
	   this.mediator=mediator;
   }
   public abstract void work();
}

Step 4: Create a concrete implementation class of the colleague class

public class User1 extends User {

	public User1(Mediator mediator) {
		super (mediator);
	}

	 public void work() {
      System.out.println("user1 performs work");		
	}

}
public class User2 extends User {

	public User2(Mediator mediator) {
		super (mediator);
	}

	 public void work() {
      System.out.println("user2 performs work");		
	}

}

Step 5: Test

public class Test {
   public static void main(String[] args) {
	Mediator mediator=new MyMediator();
	mediator.createMediator();
	mediator.workAll();
}
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325805334&siteId=291194637