问题1:代理 是什么?
在很多时候 生活中很多事情 都需要第三者去帮忙解决 。就比如说 我们买房者买房是可以直接通过 开发商 去直接购买房子的 ,那么买房者就有一项买房的职能,而开发商就会存在两项职能 1,开发拥有房子 2,销售房子。那此时的开发商就会面临 开发与销售的双重压力 工作会变的异常的耦合。
就在这个时候我们中介的存在就变得非常的有必要了,中介的作用就是帮开发商代理卖房子,房源和客户两边同时联系,帮助开发商工作上解耦,让开发商只负责开发这一个工作。
问题2:代理 有什么用?
从上图来看 我们的中介代理好像变得更加的多余 (tmd 直销不好吗 从开发商到客户的直接对接 快捷又方便)理论是这样的。
但是我们换一个位置来想,假如一个程序员它每一种言都熟悉 但并不是精通,另外一个程序员 他精通java 但是不熟其他语言,你觉得一个公司招聘 他会招聘哪一个人?
同样的道理 不让开发商做多项职能 就是为了让他的工作专一不用去为其他事情考虑。
放到程序来讲 开发商只负责开发房子 当我确定出现了 开发房子的BUG 我们就可以直接在开发商里面进行维护 ,而不用到中介去维护。如果开发商还想出租房子就直接可以再通过出租的中介进行出租 而不用增加开发商的代码块 只需再添加一个出租中介的代理即可。
各个的职业划分会将工作变得更加的简单 高效。但是与此同时 我们的代码量也会随之增加。
代码解释
一,无中介
房源接口
此时的开发商 拥有多项功能 卖房 租房 还能生产 代码耦合程度很高
购买者 买房的时候需要找到 开发商 进行购买 与此同时 开始也要先要有房子才能出售。
测试成功 :开始购买房子 -> 生产出一套房子 -> 销售房子-> 减少房子
二,静态代理模式下(有中介)
房源的接口不变
此时的开发商 只用生产房子 和提供 房源 即可 耦合大大下降
而我们的中介就只需要处理房子的销售
购买者 仍然要买房子 但是 要找的已经不是开发商而是中介了
测试成功 :开始购买房子 -> 生产出一套房子 -> 销售房子-> 减少房子
这里最大的不同之处就是 在于 销售房子 并不是由开发商去处理的
代码量虽然增加 但是层与层分析清楚 各个执行自己的职能 能添加更多的扩展 维护变得更加简单