设计模式—中介者模式

在之前,我们讲述了代理模式,今天我们将讲解一下中介者模式。
中介者模式
中介者模式
依旧是一个提醒:
依赖倒转原则

中介者模式其实和代理模式很像,都是通过一个额外的类进行调用。

中介者模式其实和字面的意思听起来很是相似,例如你买房子找中介,你和卖房子的人之间的交互都是通过中介来实现的,中介者模式也是这样。即当一个非中介者想要和另一个进行交互的时候,它需要通过调用中介者进行。
所以在类里面,两个非中介者需要知道中介者这个类,中介者需要知道非中介者者两个类。

链家中介者抽象类:

interface Mediator{
        
        setPerson1(Person person);//设置买方
        setPerson2(Person person);//设置卖方
        send(String message,Colleague coll);//将一方信息送给另外一方
}

链家中介者实现类:

class ConcreteMediator implements Mediator{
         Person person1 = null;
         Person person2 = null;
         setPerson1(Person person){
               person1  = person;
         };
        setPerson2(Person person){
              person2  = person;
        };
        send(String message,Person p){//将一方信息送给另外一方
              if(p== person1  ){
                   person2.getMessage(message);
              }else{
                  person1.getMessage(message);
              }
        }
}

买卖双方抽象类:

interface Person{
        setMediator(Mediator mediator);//设置中介
        send(String message);//发送信息
        getMessage(String message);//接收信息
}

买卖双方实现类:

class Person1 implements Person{
        Mediator mediator = null;
         setMediator(Mediator mediator){
               this.mediator  = mediator
         }
        send(String message){
              mediator.send(message,this);
        }
        getMessage(String message){
                //处理
        }
}
class Person2 implements Person{
         Mediator mediator = null;
         setMediator(Mediator mediator){
               this.mediator  = mediator
         }
        send(String message){
              mediator.send(message,this);
        }
        getMessage(String message){
                //处理
        }
}

使用者:

Mediator mediator = new ConcreteMediator ();
Person person1 = new Person1();
Person person2 = new Person2();

//让中介者认识双方
//让双方认识中介者
mediator.setPerson1(person1 );
mediator.setPerson2(person2 );
person1.setMediator(mediator );
person2.setMediator(mediator );

//双方通过中介者进行交流
person1.send("我要买你的房子");
person2.send("好的,谈价钱");

以上就是中介者模式了,看来很复杂,但是其实不复杂,可以根据实际来看:

**1.既然是通过中介者买卖房子,所以中介应该认识买卖双方,买卖双方应该认识中介者,所以中介者类中有setPerson1与setPerson2的方法来认识买卖双方,而买卖双方则有setMediator方法来认识中介者。

2.现在大家都认识了,其中买方想和卖方交流,他应该通过中介者来进行话语传递,因此在person1中的send方法里面调用的是mediator中send方法,而在mediator中的send方法则是根据不同的传入,调用另外一个接收信息的方法。(因为中介者这里就是一个传声筒)

3.买卖双方都应该有一个处理信息的方法**

怎么样和现实其实是一样的吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值