版权声明:本文为博主原创文章,未经博主允许不得转载。个人公众号:百草疯茂 https://blog.csdn.net/wang_pengyu/article/details/84891995
package com.test.DPs.XingWei.Mediator;
/**
* 行为型:Mediator-中介者 外观:作用面为 对象
*
* 用途:用一个中介对象来封装一系列的对象交互。
* 中介者使个对象不需要显示的相互引用,从而使其耦合松散,而且可独立改变它们之间的交互。
*
* 理解:降低类之间耦合。
*/
interface Mediator{
void createMediator();
void workAll();
}
class MyMediator implements Mediator{
private User user1;
private User user2;
public User getUser1(){
return user1;
}
public User getUser2(){
return user2;
}
@Override
public void createMediator(){ //创建“关系”,User和Mediator之间是相互的
user1 = new User1(this);
user2 = new User2(this);
}
@Override
public void workAll(){
user1.work();
user2.work();
}
}
abstract class User{
private Mediator mediator;
public Mediator getMediator(){
return mediator;
}
public User(Mediator mediator){
this.mediator = mediator;
}
public abstract void work();
}
class User1 extends User{
public User1(Mediator mediator){
super(mediator);
}
@Override
public void work(){
System.out.println("user1 exe!");
}
}
class User2 extends User{
public User2(Mediator mediator){
super(mediator);
}
@Override
public void work(){
System.out.println("user2 exe!");
}
}
class Test {
public static void main(String[] args) {
Mediator mediator = new MyMediator();
mediator.createMediator();
mediator.workAll();
}
}