【设计模式学习笔记】中介者模式

中介者模式:用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。【菜鸟】

从工厂模式开始我们工厂就一直在造车,今天终于,终于有人要买我们的车了!于是我们公司就开了和其他公司谈起来了。。。。

1.1 交谈动作及对象

首先定义一个说话动作的抽象类。客户和我们公司都要说话啊。

package mediation;

public abstract class Action {
    private String name;

    public String getName() {
        return name;
    }

    public Action(String name) {
        this.name = name;
    }

	public void saySomething(String words, Action... action){
        Mediator.execute(this, words, action);
	}
}

我们公司及客户是这样,继承一下Action就好了

package mediation;

public class CarCompany extends Action{

	public CarCompany(String name) {
		super(name);
	}
}

1.2 中介者长这模样

package mediation;

public class Mediator {

	public static void execute(Action action, String words, Action... action2) {
	    StringBuffer cusNames = new StringBuffer();
	    for (Action act : action2){
	        cusNames.append(act.getName()+" ");
        }
	    String msg = "【"+action.getName() + "】 对【 "+cusNames.toString()+"】说:"+words;
	    System.out.println(msg);
	}
}

注意在抽象类中,我们的动作都经过中介者处理。

1.3 测试

package mediation;

public class Test {
	public static void main(String[] args) {
		Action com = new CarCompany("车厂");
		Action cusA = new Customer("客户A");
		Action cusB = new Customer("客户B");
		com.saySomething("我们的车质量好。", cusA,cusB);
		cusA.saySomething("好不好,跑一跑!", com);
        cusB.saySomething("我看这车行!", com);
        com.saySomething("88折卖你了,客户A不知道的。", cusB);
        cusB.saySomething("o了", com);
        cusA.saySomething("你们在说啥....(⊙_⊙)?", com,cusB);

    }
}

1.4 结果

在这里插入图片描述

参考

【菜鸟教程】:http://www.runoob.com/design-pattern/mediator-pattern.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值