设计模式-代理模式
2018-06-18 本文已影响8人
老汉健身
1.代理模式的分类:
代理模式分为:
虚拟代理:比如网页加载后可以先用一张事先准备好的图片代替要加载的图片,使网页内容先加载出来,等图片加载完成后再用该图片代替事先准备好的图片.
智能代理:比如火车站售票的代理
远程代理:比如通过网络监控远程的好几家便利店
保护代理:比如用户登录后才具有某些权限 未登录只能浏览 对资源是一种保护
2.代理的两种实现模式
动态代理:
静态代理:
3.实现代理的两种方式
继承和聚合两种方式都能实现代理,但聚合更适合
4.JDK动态代理
实现步骤:
1.编写一个实现类,实现InvocationHandler,然后把需要代理的业务逻辑添加到invoke方法中.
public object invoke (Object object ,Method method,Object[] args).其中object为代理类,method为被代理的方法,args是指该方法的参数数组.
2.创建动态代理:Proxy.newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h)
5.总结:代理模式实际上是一种aop操作,虽然我们不能直接修改JDK源码,但我们可以通过代理模式把JDK的源码提供的方法通过代理模式增强,添加业务逻辑,使之满足业务需要.