登录
首页 >  文章 >  java教程

调解员

来源:dev.to

时间:2024-09-16 12:48:53 198浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《调解员》,很明显是关于文章的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

调解员

行为设计模式之一,允许对象在中介者的帮助下相互通信。
中介器通过防止对象相互直接依赖来促进松散耦合。相反,他们使用中介来相互沟通。

让我们通过实现不同用户互相聊天的聊天室来理解这一点

调解员

public interface chatmediator {
    public void sendmessage(user user, string message);
    public void adduser(user user);
}

public class chatroommediator implements chatmediator {
    private list<user> 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 是所有用户之间的中间人

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《调解员》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>