设计模式中介者

中介者模式



设计原则:遵循迪米特,破坏单一职责
常用场景:一个系列的对象交互关系十分复杂
使用概率:10%
复杂度:中
变化点:对象之间的交互
选择关键点:复杂的交互关系是否有共性可被中介者承担
逆鳞:中介者无法工作


主要思想:
租房子找中介,这样就和房东没什么直接关系了,我有事也不用麻烦房东,房东有事也不找我
即两个对象需要有关系,但是类中不定义和依赖,而是把这种关系找一个中介类去维护
比如我是 租房的类 我要找房东吧 那我就需要定义房东类对象 就形成依赖了
同样房东类一样
但是现在我和房东都找中介,那么租房者类和房东类 只需要持有中介类对象就可以了,并且有什么关于房子的事,因为中介类中持有房东和租房者对象那么都可以在中介类中完成了




public class Landlord {

    private Mediator mediator;

    public void setMediator(Mediator mediator) {
        this.mediator = mediator;
    }

    public void rentOut() {
        System.out.println("出租房子");
    }
}


public class Renting {

    private Mediator mediator;

    public void setMediator(Mediator mediator) {
        this.mediator = mediator;
    }

    public void RentIn() {
        System.out.println("租房子");
    }
}


//这里只写了中介租出了房子,两方和中介的交互没做但是也持有中介的对象,可进行想要的交互
public class Mediator {

    private Landlord landlord;
    private Renting renting;

    public void setLandlord(Landlord landlord) {
        this.landlord = landlord;
    }

    public void setRenting(Renting renting) {
        this.renting = renting;
    }

    public void RentHouse() {
        landlord.rentOut();
        renting.RentIn();
    }
}
原文地址:https://www.cnblogs.com/zhaojj/p/7800536.html