设计模式中介者
中介者模式
设计原则:遵循迪米特,破坏单一职责
常用场景:一个系列的对象交互关系十分复杂
使用概率: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(); } }