Java設計模式_行爲型_中介者模式_租個房子不過如此

轉載請註明出處: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, "張三租個單間");
    }

}
發佈了39 篇原創文章 · 獲贊 14 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章