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

来源:互联网 发布:python 常用设计模式 编辑:程序博客网 时间:2024/05/01 18:10

转载请注明出处: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, "张三租个单间");    }}
0 0