设计模式学习笔记--中介者模式

十八、中介者模式

中介者模式(Mediator Pattern )通过中介类来降低多个对象和类的复杂通讯,有利于降低系统耦合和代码维护。

实现

示例聊天室情景,各个User用户向聊天室发送信息,而不是直接发送给其他User,聊天室充当中介者。
mediator
- 创建对象类

User.java


/**
 * Created by lenovo on 2016/12/1 0001.
 * 对象类,多个对象实例,通过中介者来通讯,所以需要想终结者发送消息,而不是直接发给其他对象。
 */
public class User {
    private String name;
    public User(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 调用ChatRoom的showMsg,来向聊天室发送消息,给其他对象看。
     * @param msg
     */
    public void sendMsg(String msg){
        ChatRoom.showMsg(this,msg);
    }
}
  • 创建中介类

ChatRoom.java

import java.util.Date;

/**
 * Created by lenovo on 2016/12/1 0001.
 * 聊天室,充当中介类
 */
public class ChatRoom {
    public static void showMsg(User user,String msg){
        System.out.println(new Date().toString() + " [" + user.getName() + "] : "+msg);
    }
}
  • 演示

MediatorPatternDemo.java


/**
 * Created by lenovo on 2016/12/1 0001.
 *
 */
public class MediatorPatternDemo {
    public static void main(String[] args){
        User robert = new User("Robert");
        User john = new User("John");

        robert.sendMsg("Hello john");
        john.sendMsg("Hi Robert");
    }
}
  • 输出
Thu Dec 01 09:33:05 CST 2016 [Robert] : Hello john
Thu Dec 01 09:33:05 CST 2016 [John] : Hi Robert
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值