- 定义:用一个中介对象封装一系列的对象 交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它 们之间的交互。
public abstract class AbstractMediator {
protected Renter r;
protected Houser h;
AbstractMediator() {
r = new Renter(this);
h = new Houser(this);
}
public abstract void rentHouse(Person p);
}
public class Mediator extends AbstractMediator {
@Override
public void rentHouse(Person p) {
if(p instanceof Renter){
super.h.isHave();
}
}
}
public abstract class Person {
protected AbstractMediator abstractMediator;
public Person(AbstractMediator abstractMediator) {
this.abstractMediator = abstractMediator;
}
}
public class Renter extends Person{
public Renter(AbstractMediator abstractMediator) {
super(abstractMediator);
}
public void rent(){
System.out.println("租客想租房子,能帮我问下房东房子还在吗");
super.abstractMediator.rentHouse(this);
}
}
public class Houser extends Person{
public Houser(AbstractMediator abstractMediator) {
super(abstractMediator);
}
public void isHave(){
System.out.println("我的房子还在");
}
}
class Test{
public static void main(String[] args) {
AbstractMediator mediator = new Mediator();
Renter renter = new Renter(mediator);
renter.rent();
}
}
输出:
租客想租房子,能帮我问下房东房子还在吗
我的房子还在