
package per.mjn.pattern.mediator;
public abstract class Person {
protected Mediator mediator;
public Person(String name, Mediator mediator) {
this.mediator = mediator;
package per.mjn.pattern.mediator;
public class Tenant extends Person {
public Tenant(String name, Mediator mediator) {
public void contact(String message) {
mediator.contact(message, this);
public void getMessage(String message) {
System.out.println("租房者" + name + "获取到的信息是:" + message);
package per.mjn.pattern.mediator;
public class HouseOwner extends Person {
public HouseOwner(String name, Mediator mediator) {
public void contact(String message) {
mediator.contact(message, this);
public void getMessage(String message) {
System.out.println("房主" + name + "获取到的信息是:" + message);
package per.mjn.pattern.mediator;
public abstract class Mediator {
public abstract void contact(String message, Person person);
package per.mjn.pattern.mediator;
public class MediatorStructure extends Mediator {
private HouseOwner houseOwner;
public void contact(String message, Person person) {
if (person == houseOwner) {
tenant.getMessage(message);
houseOwner.getMessage(message);
public HouseOwner getHouseOwner() {
public void setHouseOwner(HouseOwner houseOwner) {
this.houseOwner = houseOwner;
public Tenant getTenant() {
public void setTenant(Tenant tenant) {
package per.mjn.pattern.mediator;
public static void main(String[] args) {
MediatorStructure mediator = new MediatorStructure();
Tenant tenant = new Tenant("李四", mediator);
HouseOwner houseOwner = new HouseOwner("张三", mediator);
mediator.setTenant(tenant);
mediator.setHouseOwner(houseOwner);
tenant.contact("我要租三室的房子!!");
houseOwner.contact("我这有!");
