您的位置:首页 > 编程语言 > Java开发

Java设计模式_行为型_中介者模式_租个房子不过如此

2015-12-28 11:22 645 查看
转载请注明出处:/article/11557485.html

本文出自:【梁敬明的博客】

1.为什么会有中介

  当来到一个陌生的城市去工作,难免要解决各种各样的生活问题,对于人生地不熟的是你来说,遇到问题时如何解决显得至关重要。如果我们没有办法直接解决,就把需求告诉中介通过他们来解决吧!

//当遇到同样的问题时,我们就是难兄难弟
public abstract class Colleague {
//将问题带给中介,让他们去解决
public <T> void setContract(Mediator<T> mediator, String message) {
mediator.execute(this, message);
}
//生活中有很多问题需要去解决
public abstract void doSomething();
}


2.中介是干什么的

  当然要去找中介帮忙,应当明白他们到底是干什么的,为什么可以帮助我们解决这样那样诸多如此的问题。作为一个中介,首先要有一个信息的仓库,用于存储大量的信息,从中剔除无用的信息,当用户有需求时,可以从信息仓库中取出信息帮助用户解决实际问题,说起来就是这么简单!

//中介到底可以做什么
public abstract class Mediator<T> {
// 建立信息的仓库
private List<T> colleagues = new ArrayList<T>();

// 收集大量的信息
public void addColleague(T t) {
colleagues.add(t);
}

// 剔除没用的信息
public void removeColleague(T t) {
colleagues.remove(t);
}

// 使用指定信息仓库
public List<T> getColleagues() {
return colleagues;
}

// 帮助苦逼的我们解决各种各样的问题
public abstract void execute(Colleague colleague, String message);
}


3.房东与住户之间

  出来混最重要的一件事情就是要找个落脚的地方,身为路人甲的我们,想要避免各种大坑找个自己满意的房子,真是难上加难。

  有没房子住的,也有房子多的住不了的,房子空着实在是太浪费,毕竟房地产进入行业低迷期,空着又不会涨价,还不如租出去也是一笔客观的收入。

//陌生城市混的路人甲
public class ZhangSan extends Colleague {

// 先找个落脚的地方
public void doSomething() {
System.out.println("张三要租房。");
}

}

//陌生城市的房东
public interface HouseOwner {

// 看看谁在租房
void doSomething(String message);

}

//陌生城市的房东乙
public class WangWu implements HouseOwner {

//我要出租,谁要租我的房子
public void doSomething(String message) {
System.out.println(message+",王五要出租。");
}

}


4.那就去找个中介

  有房东想要出租房子,有住户想要租住房子,当然找一个合适的租房中介还是十分必要的,房东只需要把自己的房子委托给中介即可,住户也可以从中介那里挑选适合自己的房子住,双方都可以获得更多的选择,房东可以更加容易的将自己的房子出租出去,住户又能更加方便的找到物美价廉的租房。

//这就是一个房屋中介
public class HouseMediator extends Mediator<HouseOwner> {

// 从信息仓库中找到帮住户找到合适的房源
@Override
public void execute(Colleague colleague, String message) {
for (HouseOwner lessor : getColleagues()) {
colleague.doSomething();
lessor.doSomething(message);
}
}

}


5.现在就开始租房

  现在开始完成第一笔租房的生意。房屋中介首先要接受房东的出租委托,当然没有房东的委托,住户找中介也组不到房子,毕竟没有房源嘛。当中介那里有了房源以后,住户就可以找中介查找自己需要租赁的房子。

public class Client {

public static void main(String[] args) {
// 房屋中介
Mediator<HouseOwner> mediator = new HouseMediator();
// 房东将房子委托给中介
mediator.addColleague(new WangWu());

// 需要租房子的住户
ZhangSan zhang = new ZhangSan();
// 寻找中介租个房子
zhang.setContract(mediator, "张三租个单间");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: