设计模式-代理模式

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的源码提供的方法通过代理模式增强,添加业务逻辑,使之满足业务需要.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:代理模式在是一个java中常用的设计模式,离我们较近的有Mybatis,spring等。学会代理模式的设计思...
    __y阅读 681评论 1 4
  • 一、概述   代理模式我们接触的就比较多了,所谓的代理模式就是,给某一个对象提供一个代理对象,并由代理对象控制对原...
    骑着乌龟去看海阅读 931评论 0 9
  • 明末满人入关之后,发了一道剃发令,让汉族人改学满族人发型,一律削发留辫子,很多人不愿意,于是就遭到清兵的强迫镇...
    kwfs笔记阅读 619评论 0 0
  • 亲手种下的小榆苗,一高一矮,现如今已是老榆树。沐浴着大西北的阳光,和劲烈的风,聊着闲荒。春天来了,她...
    18824383c04e阅读 338评论 1 6
  • 2017-07-21 广州两天游(四) ——暑假记录之“小洲、十香园” 火山 山野之人豪放,其实我也脚步轻浮,还不...
    朱明云阅读 757评论 0 9