设计模式之中介者模式

还是之前的小明花钱买作业,这次是假期作业没有小刚帮他写了。小明自己又写不出来,于是找到了一个拉皮条的。这个拉皮条的就是一个中介者,很多找人写作业的和帮人写作业的都找他。但是拉皮条的也不是万能的当没有发布任务的或者接收任务的他只能宣布这次交易失败。

这个逻辑用代码怎么写呢?
首先需要一个发布任务的类,这个类与中介者发生交互而不与服务提供方交互

public class Publisher {
    private String name  = null;
    public Publisher(Mediator mediator,String name){
        this.name = name;
        mediator.setPublisher(this);
    }
    public void setTask(){
        System.out.println(name+"花钱请人买作业");
    }
}

下来当然也需要写作业的人了

public class Server {
    public  String name =null;
    public Server(Mediator mediator,String name){
        this.name = name;
        mediator.setServer(this);
    }
    public void getTesk(){
        System.out.println(name+"把这个活接了");
    }
}

最后通过中介把双方联系起来

public class Mediator {
    private Publisher publisher;
    private Server server;
    
    public void setPublisher(Publisher publisher) {
        this.publisher = publisher;
    }
    public void setServer(Server server) {
        this.server = server;
    }

    public void deal(){
        if(publisher==null||server==null){
            System.out.println("交易不成功");
        }else {
            publisher.setTask();
            server.getTesk();
            clean();
        }
    }
    public void clean(){
        publisher = null;
        server = null;
    }
}

再看看我们的场景

public class Client {
    public static void main(String[] args) {
        Mediator mdt = new Mediator();
        Publisher publisher = new Publisher(mdt, "小明");
        Server server = new Server(mdt, "小强");
        mdt.deal();
    }
}

运行结果:
小明花钱请人买作业
小强把这个活接了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值