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, "张三租个单间"); } }
相关文章推荐
- Java中Timer的用法
- JavaScrip——练习(做悬浮框再进一步:悬浮窗后缀悬浮窗——用this.className)
- java集合分类
- SpringDateJpa 注解 Column属性 详解
- Java动态代理一——动态类Proxy的使用
- java保留两位小数几种方法
- 深入理解Java:注解(Annotation)自定义注解入门
- Java动态代理二——CGLIB动态代理应用
- java操作mongdb多条件复合查询(包括模糊查询和按时间段查询),分页
- 如何成为一个牛掰的Java大神
- 轻量级JavaEE企业应用实战(十七)
- Java线程外篇:线程本地变量ThreadLocal
- Java 泛型通配符?解惑
- Java线程篇(十一):Fork/Join-Java并行计算框架
- Java线程篇(十):Compare And Swap
- java下使用kaptcha生成验证码
- Java线程篇(九):Condition-线程通信更高效的方式
- 严重: Context initialization failed java.lang.IllegalArgumentException at org.springframework.asm.Cla
- java实现jdbc查询结果集result转换成对应list集合
- struts2 拦截器和actioninvocation