
行为设计模式之一,允许对象在中介者的帮助下相互通信。
中介器通过防止对象相互直接依赖来促进松散耦合。相反,他们使用中介来相互沟通。
让我们通过实现不同用户互相聊天的聊天室来理解这一点
调解员
public interface chatmediator {
public void sendmessage(user user, string message);
public void adduser(user user);
}
public class chatroommediator implements chatmediator {
private list users;
public chatroommediator(){
this.users = new arraylist<>();
}
@override
public void adduser(user u){
users.add(u);
}
@override
public void sendmessage(user u, string message){
for(user user : users){
if(user!=u){
user.receive(message);
}
}
}
}
用户
public class user {
chatmediator mediator;
private string name;
public user(string n,chatmediator m){
this.name = n;
this.mediator = m;
}
public string getname(){
return this.name;
}
public void send(string message){
system.out.println(this.name+":sent:"+message);
mediator.sendmessage(this,message);
}
public void receive(string message){
system.out.println(this.name+":received:"+ message);
}
}
主要
public class main {
public static void main(string args[]){
chatmediator mediator = new chatroommediator();
user user1 = new user("prashant",mediator);
user user2 = new user("sandeep", mediator);
user user3 = new user("ajay", mediator);
mediator.adduser(user3);
mediator.adduser(user2);
mediator.adduser(user1);
user1.send("hi all");
user2.send("hi prashant");
user3.send("hi...");
}
}
输出:
prashant:sent:Hi All ajay:received:Hi All sandeep:received:Hi All sandeep:sent:Hi Prashant ajay:received:Hi Prashant prashant:received:Hi Prashant ajay:sent:Hi... sandeep:received:Hi... prashant:received:Hi...
要点
- 用户对象松散耦合,即即使某些用户被删除或修改也不会影响任何其他用户
- mediator 是所有用户之间的中间人










