当前位置: 首页 > news >正文

无锡万度网站建设wordpress禁用主题字体

无锡万度网站建设,wordpress禁用主题字体,wordpress首页图片不显示图片,网站icp是什么意思看了这篇文章#xff0c;你会对静态代理模式#xff0c;JDK 动态代理模式和 CGLIB 动态代理模式有个很清晰的认识。01、简介什么是代理模式代理模式也称为委托模式#xff0c;属于结构型模式之一。在某些情况下#xff0c;一个对象不适合或者不能直接引用另一个对象#x… 看了这篇文章你会对静态代理模式JDK 动态代理模式和 CGLIB 动态代理模式有个很清晰的认识。01、简介什么是代理模式代理模式也称为委托模式属于结构型模式之一。在某些情况下一个对象不适合或者不能直接引用另一个对象而代理对象可以在客户端和目标对象之间起到中介的作用比如我们生活中的邮局快递公司婚介所等等。代理模式分类代理模式分为静态代理模式和动态代理模式。静态代理是由程序员创建或特定工具自动生成源代码再对其编译。在程序运行之前代理类.class文件就已经被创建了动态代理是在程序运行时通过java反射机制动态创建的。代理模式的目的代理模式主要有两个目的一保护目标对象二增强目标对象。02、静态代理模式静态代理模式的话我模拟一个古代结婚的场景。场景是这样的在古代某家的公子看上了别家的姑娘一般都是家里的大人去姑娘的家里提亲双方父母同意了然后就拜堂成婚后面要宴请亲朋好友。这里这个公子只需要拜堂成婚就行了至于提亲和宴请亲友都是父母操办的。我们用代码来模拟一下这个场景。首先我们来建个 Person 接口public interface Person {/*** 人有很对行为,这里我们用到的是结婚*/void marry(); } 然后这家公子要成亲我们建个 Son 类实现 Person 接口public class Son implements Person {Overridepublic void marry() {System.out.println(我终于结婚了);} } 父亲帮儿子提亲,建个 Father 类:public class Father {private Son son;public Father(Son son){this.son son;}public void marry(){System.out.println(父亲上门提亲);this.son.marry();System.out.println(父亲宴请亲友);} } 最后是测试代码public class Test {public static void main(String[] args) {Father father new Father(new Son());father.marry();} } 输出父亲上门提亲 我终于结婚了 父亲宴请亲友 代码写完了大家有没有发现静态代理模式的一个缺点。那就是单一一个类只能代理一个目标对象。比如上面的场景父亲只能为自己的儿子提亲不能为别人家的孩子提亲。下面我们来看看动态代理是怎么解决这个问题的。03、动态代理模式动态代理模式分为 JDK 动态代理和 cglib 动态代理两种。这里先用 JDK 动态代理的方式来模拟一个通过婚介所找朋友的场景。先将 Person 接口改动下public interface Person {/*** 找朋友*/void findFriend(); } 然后是婚介所 JDKMatrimonialAgency 类public class JDKMatrimonialAgency implements InvocationHandler {//被代理的对象把引用给保存下来private Object target;public Object getInstance(Object target) throws Exception{this.target target;Class? clazz target.getClass();return Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),this);}public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {before();Object obj method.invoke(this.target,args);after();return obj;}private void before(){System.out.println(这里是婚介所,请提供你的需求);}private void after(){System.out.println(已经找到合适的,尽快安排你相亲);} } JDK 动态代理主要是实现 InvocationHandler 接口并实现 invoke 方法然后创建 Customer 类public class Customer implements Person {Overridepublic void findFriend() {System.out.println(我要找一个胸大,腿长又好看的美女);} } 最后测试类public class Test {public static void main(String[] args) {try {Person obj (Person)new JDKMatrimonialAgency().getInstance(new Customer());obj.findFriend();} catch (Exception e) {e.printStackTrace();}} } 看下结果这里是婚介所,请提供你的需求 我要找一个胸大,腿长又好看的美女 已经找到合适的,尽快安排你相亲 然后我们用 CGLIB 来实现如果不是springspring已经集成了 CGLIB 环境需要先引入 jar 包dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.3.0/version /dependency 然后加一个 CglibMatrimonialAgency 类public class CglibMatrimonialAgency implements MethodInterceptor {public Object getInstance(Class? clazz) throws Exception{Enhancer enhancer new Enhancer();//要把哪个设置为即将生成的新类的父类enhancer.setSuperclass(clazz);enhancer.setCallback(this);return enhancer.create();}Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy)throws Throwable {//业务的增强before();Object obj methodProxy.invokeSuper(o,objects);after();return obj;}private void before(){System.out.println(这里是婚介所,请提供你的需求);}private void after(){System.out.println(已经找到合适的,尽快安排你相亲);} } CGLIB 主要是实现 MethodInterceptor 并实现 intercept 方法。看下结果这里是婚介所,请提供你的需求 我要找一个胸大,腿长又好看的美女 已经找到合适的,尽快安排你相亲 04、JDK和CGLIB动态代理对比JDK 动态代理是实现了被代理对象的接口CGLib 是继承了被代理对象。JDK 和 CGLib 都是在运行期生成字节码JDK 是直接写 Class 字节码CGLib 使用 ASM框架写 Class 字节码Cglib 代理实现更复杂生成代理类比 JDK 效率低。JDK 调用代理方法是通过反射机制调用CGLib 是通过 FastClass 机制直接调用方法CGLib 执行效率更高。05、代理模式的优缺点优点:降低耦合度,扩展性好代理对象将代理对象和目标对象分离,起到保护目标对象的作用可以对目标对象的功能增强缺点:增加类的数量因为会调用增强方法,所以会造成处理速度慢增加了系统的复杂度这是好的架构都会有的缺点比如spring近期热文 面试珍藏最常见的200多道Java面试题被一个熟悉的面试题问懵了String...面试官如何实现幂等性校验【END】关注下方二维码订阅更多精彩内容朕已阅
http://www.yutouwan.com/news/70029/

相关文章:

  • 深圳福田网站建设响应式高端网站
  • 免费商城网站建设平台店铺推广文案
  • p2p网站数据分析怎么做北京软件开发公司
  • php建设网站如何进行电子商务网站推广?
  • 怀集住房和城乡建设部网站建筑室内设计软件
  • 深圳网站建设需要多少费用一家做公司点评的网站
  • 廊坊网站排名优化公司兴义网站开发公司
  • 做商城类网站备案时需提供什么证件做现金贷的网站有哪些
  • 深圳建设行业网站个人求职网站履历怎么做
  • 查企业企业网站有哪些江苏企业网站排名优化
  • 找加工订单的网站排名优化网站
  • 个人网站设计风格网站设计区域
  • 手机网站设计公司只找亿企邦策划书怎么写 格式范文
  • 专业网站建设常州陕西省住房和城乡建设厅网站上查询
  • 手机网站开发总结一个网站多个数据库
  • 网站空间和服务器河北建设工程信息网下载时间
  • 关于水果怎么做网站seo概念
  • 经营网站需要什么资质怎么注册自己的微信小程序
  • 北京营销网站建设公司签订网站制作合同注意事项
  • 网页做的很美的网站网站怎么做拉新
  • 做物流网站电话号码保定百度推广排名
  • 兰州做网站公司哪家好成都广告公司贺忠阳简历
  • 淄博网站建设铭盛信息项目建设计划书
  • 信用体系建设网站维运工作制度wordpress建站的教程
  • 深圳市建设局网站首页定西市建设网站费用
  • 徐州网站建设外包嘉兴网站制作网站建设
  • 徐州网站开发信息wordpress博客无法评论
  • 模仿网站制作中国视觉设计网
  • 企业网站做静态网站还是网站解析出问题 邮件收不到了
  • 昆明网站建设加王道下拉陕西交通建设集团蓝商公司网站