轉載請註明出處:http://blog.csdn.net/ljmingcom304/article/details/50417776
本文出自:【樑敬明的博客】
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, "張三租個單間");
}
}