03-代理模式
代理是代替某个物品,替它做一些事情。
比如,租房一般不是直接找房东,而是找中介,通过中介来经行租房。
那为什么要找代理呢?
如果没有代理,那房东就会时不时就被“骚扰”。通过代理,把这些有用/无用的信息都通过中介过滤一遍,这样就可以提高效率,减少耦合(房东只提供房子的服务,而中介只需要过滤/整合租房信息)
代理类型
代理模式分为静态代理和动态代理
静态代理
静态代理是不会改变的,无论被代理的对象有没有使用,都会创建一个这个类型的代理。 适用于需求稳定的场景
还是拿租房为例,如果房东的房子处于黄金地段,有稳定的客源,那么中介公司可以为此专门配对一个中介来对接这个房东。
动态代理
动态代理是按需来创建代理对象的,如果需要,那么才会创建,如果不需要,那么就自然不会创建。
依然拿租房为例,在大部分的情况下,房东一般是没有稳定的客源的,因此中介公司也不会专门配对一个中介来管理,一般是使用中介池来管理
中介池:当有需求的时候,去中介池里面找一个中介对接,在结束工作了之后,把中介就放回中介池里面。
思考
动态代理与静态代理
- 动态代理是按需创建的,静态代理是直接创建,就算没有需求也依然会创建
- 动态资源的利用率更高,静态代理速度更快