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

北京建设厅网站查询wordpress门户主题下载

北京建设厅网站查询,wordpress门户主题下载,tq网站建设,网站建设栏目这一块怎么写proxy mode1. 什么是代理1.1 例子解释1.2 作用2. 静态代理2.1 优缺点分析2.2 以厂家卖u盘用代码说明3. 动态代理3.1 什么是动态代理3.2 jdk实现原理3.3 代码描述1. 什么是代理 1.1 例子解释 1. 生活中的例子#xff0c;常见的商家卖东西#xff0c; 商家就是代理#xff0… proxy mode1. 什么是代理1.1 例子解释1.2 作用2. 静态代理2.1 优缺点分析2.2 以厂家卖u盘用代码说明3. 动态代理3.1 什么是动态代理3.2 jdk实现原理3.3 代码描述1. 什么是代理 1.1 例子解释 1. 生活中的例子常见的商家卖东西 商家就是代理工厂是目标买东西的人是客户端。 买东西不能找厂家买东西工厂不卖得找商家 商家在其中形成了代理。 2. 房东--租房中介--租房人也是上面的关系 3. 程序中代理表示a类访问c类中的方法 但是c类不让a类访问 创建一个b代理 c让b访问1.2 作用 1.功能增强 在原有的功能上 新增了额外的功能 新增的功能 叫功能增强 2.控制访问 代理类不让你访问目标 如商家不让用户访问厂家 3.在项目中使用使用别人的代码在不改变原来目标方法功能的前提下 可以在代理中增强自己的功能代码2. 静态代理 2.1 优缺点分析 代理类是自己手工实现的自己创建一个Java类表示代理类。你所代理的目标是确定的好理解 缺点: 目标类增多 代理类可能成倍增加 数量太多...接口中 增加功能后 会影响代理类多实现功能...2.2 以厂家卖u盘用代码说明 实现的功能 package com.lovely.static_proxy;// 功能 卖u盘 public interface UsbSell {// 卖usbfloat sell(int amount);} 目标类 a类 package com.lovely.static_proxy;/*** 目标类 * author echo lovely**/ public class Factory implements UsbSell {// 每个u盘卖10元Overridepublic float sell(int amount) {System.out.println(工厂卖u盘);return 10.0f;}} 淘宝代理类代理b1 package com.lovely.static_proxy;/*** 淘宝代理类 代理工厂 * author echo lovely**/ public class TaoBao implements UsbSell {private Factory factory new Factory();// 代理工厂Overridepublic float sell(int amount) {// 多卖了 15.0f 功能增强1float price factory.sell(amount) 15.0f;// 功能增强2System.out.println(淘宝返回优惠券);return price;}} 微商代理 代理b2 package com.lovely.static_proxy;public class WeiSolder implements UsbSell {private Factory f new Factory();Overridepublic float sell(int amount) {return f.sell(amount) 1.0f;}} 客户端a类 package com.lovely.static_proxy;public class BuyMain {/*** 缺点 会创建许多代理对象* 如果 目标很多 代理对象很多* 目标增加 代理改变...* param args*/public static void main(String[] args) {// 通过代理类 实现买you盘 增加了 买you盘 和 优惠券...TaoBao tb new TaoBao();float price tb.sell(10);System.out.println(经过代理taobao 价格 price);WeiSolder w new WeiSolder();price w.sell(10);System.out.println(经过代理微商 价格 price);}} 3. 动态代理 3.1 什么是动态代理 概念在程序执行过程中使用jdk的反射机制创建代理类对象无需写代理类了并动态的指定要代理目标类厂家。又 动态代理是一种创建Java对象的能力让你不用创建代理类就能创建代理类对象。代理目标是活动的可设置的给不同的目标随时创建代理优点:解决静态代理的弊端在静态代理中目标类很多的时候 可使用动态代理 修改接口中的方法 不会影响代理类 3.2 jdk实现原理 要求jdk的动态代理 目标类与代理类必须实现相同的接口才可代理jdk动态代理实现InvocationHandler: 只有一个invoke()方法里面写代理类实现的功能 1. 调用目标类方法 2. 实现功能增强public Object invoke(Object proxy, Method method, Object[] args)InvocationHandler 接口表示你的代理要干什么。使用 1. 创建类实现接口 InvocationHandler2. 重写invoke方法把原来静态代理中代理类要完成的功能写在invoke中Method 类 method.invoke(目标对象参数值)Proxy 类 使用proxy类的方法 表示创建对象 代替newProxy.newProxyInstance(more args...); 创建代理对象public static Object newProxyInstace(ClassLoader loader, Class?[] interfaces, InvocationHandler h)代理目标类 创建代理类对象返回值参数1. ClassLoader loader 类加载器负责向内存中加载对象。目标对象的类加载器。a.getClass().getClassLoader()2. Class?[] interfaces 目标对象实现的接口3. InvocationHandler 代理类要完成的功能3.3 代码描述 功能接口 package com.lovely.dynamite_proxy;// 实现卖u盘功能 public interface UsbSell {public abstract float sell(int amount);} 目标类 package com.lovely.dynamite_proxy;public class UsbKingFactory implements UsbSell {Overridepublic float sell(int amount) {System.out.println(工厂实现卖u盘每个 10.0f);return 10.0f;}}代理类要干什么实现目标||功能增强 package com.lovely.dynamite_proxy;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method;/*** 代理类所实现的功能* author echo lovely**/ public class MyInvocationHandler implements InvocationHandler {// 目标对象private Object target null;public MyInvocationHandler(Object target) {this.target target;}// 此方法 实现目标(卖u盘) 和 实现功能增强public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 调用目标对象target的 方法 Object returnValue method.invoke(target, args);if (target ! null) {float price (float) returnValue;// 多卖20元price 20.0f;returnValue price;}System.out.println(这里调用目标方法还可做其它操作如写一些其它功能);return returnValue;}} 创建代理对象实现动态代理需求 package com.lovely.dynamite_proxy;import java.lang.reflect.Proxy;public class BuyMain {public static void main(String[] args) {// 创建目标对象UsbSell usbKing new UsbKingFactory();// 创建实现目标 功能类MyInvocationHandler handler new MyInvocationHandler(usbKing);// System.out.println(UsbKingFactory.class.getInterfaces()[0].getName());// System.out.println(UsbKingFactory.class.getClassLoader());// 创建代理对象UsbSell proxy (UsbSell)Proxy.newProxyInstance(UsbKingFactory.class.getClassLoader(), UsbKingFactory.class.getInterfaces(), handler);float price proxy.sell(1);System.out.println(价格为 price);}} 工厂实现卖u盘每个10.0 这里调用目标方法还可做其它操作如写一些其它功能 价格为 30.0关于动态代理另一种实现cglib cglibcode generating libray动态代理: 第三方的工具库 创建代理对象原理是继承: cglib通过继承目标类 创建子类 重写方法 对功能修改对于无接口的类 使用cglib实现cglib在spring mybatis中使用较多
http://www.huolong8.cn/news/46265/

相关文章:

  • 钢笔工具网站网站首页弹窗代码
  • 游戏科技网站网站做线上销售
  • 织梦建站教程wordpress的页面
  • 绍兴网站建设推广个人网站建设服务
  • 做网站练手wordpress瀑布流网店
  • 东台做网站的郑州注册公司网站
  • 做网站难度华铭保信建筑公司网站
  • 福州网站建站公司洛阳网站建设找汉狮
  • rails网站开发西安外贸网站搭建
  • 网站营销优化方案电子商务网站创建的4个阶段
  • 高校网站建设管理制度10个网站用户体验优化的研究结果
  • 阿里云服务器可以访问国外网站吗长春 建设工程信息网站
  • 北京网站建设cnevo忘记了wordpress登录密码
  • 滨州做网站建设淄博住房和城乡建设厅网站
  • 免费网站建设程序下载做网站具体收费
  • 网站做的是哪方面的内容沈阳建站多少钱
  • 创建网站的工具建设网站主要有哪些技术
  • 商务网站建设推荐个人养老金
  • 人力资源网站怎么建设烟台优化网站公司
  • 3000元网站建设三年新乡做网站的公司有那些
  • 百度做的网站 后台管理怎么进入如何网上外贸接单
  • 湘潭网站建设 磐石网络荣誉一般网站 广告
  • 深圳专业网站制作泉州网站优化排名
  • 长沙企业网站制作服务报价个人网站有哪些举例
  • 广西翔路建设有限责任公司网站wap站是什么意思啊
  • 如何快速用手机做网站淄博桓台网站建设方案
  • 学生网站建设首页wordpress的vieu主题破解版
  • 网站开发+百度编辑器在网站后台备案号怎么改
  • 网站开发费怎么做会计分录制作app下载
  • 旅行社网站建设做一家电商网站需要多少钱