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

免费网站整站模板下载微信营销软件有哪些

免费网站整站模板下载,微信营销软件有哪些,wordpress catch_first_image,多媒体网站开发实战代理模式 代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下,增加额外的功能,如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…

代理模式

代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下,增加额外的功能,如权限控制、日志记录等。

静态代理

静态代理是指创建的或特定工具自动生成源代码,在程序运行前代理类的.class文件就已经存在了。每个代理类只能为一个接口服务,如果需要代理多个接口,则需要编写多个代理类,这会增加维护成本。

示例:房子中介(静态代理)
// 房屋租赁服务接口
interface HouseLeaseService {void leaseHouse();
}// 真实主题类 - 房东
class Landlord implements HouseLeaseService {public void leaseHouse() {System.out.println("房东: 出租房屋.");}
}// 静态代理类 - 中介
class RealEstateAgent implements HouseLeaseService {private Landlord landlord;public RealEstateAgent(Landlord landlord) {this.landlord = landlord;}@Overridepublic void leaseHouse() {// 增加额外功能,例如广告宣传System.out.println("中介: 发布租房信息.");landlord.leaseHouse();// 增加额外功能,例如收取中介费System.out.println("中介: 收取中介费用.");}
}public class StaticProxyDemo {public static void main(String[] args) {Landlord landlord = new Landlord();HouseLeaseService agentService = new RealEstateAgent(landlord);agentService.leaseHouse();}
}

在这个例子中,RealEstateAgent作为代理类,不仅实现了HouseLeaseService接口,还包含了对Landlord对象的操作,并在调用前后添加了额外的行为。

动态代理

动态代理是在程序运行时动态生成代理类的字节码并加载到JVM中,因此不需要提前编写代理类的代码。Java提供了两种主要的动态代理方式:JDK动态代理和CGLIB。

JDK动态代理

在JDK动态代理中有两个重要的类ProxyInvocationHandler

  • Proxy
    Proxy 提供用于创建动态代理类和实例的静态方法,它还是由这些方法创建的所有动态代理类的超类。
    在这里插入图片描述
    在这里插入图片描述

  • InvocationHandler
    InvocationHandler 是代理实例的调用处理程序 实现的接口。
    每个代理实例都具有一个关联的调用处理程序。对代理实例调用方法时,将对方法调用进行编码并将其指派到它的调用处理程序的 invoke 方法。
    在这里插入图片描述

代码示例

首先,我们定义一个实现了InvocationHandler接口的处理器类ProxyInvocationHandler ,它负责封装中介的具体业务逻辑。

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;// 房屋租赁服务接口
interface HouseLeaseService {void leaseHouse();
}// 真实主题类 - 房东
class Landlord implements HouseLeaseService {public void leaseHouse() {System.out.println("房东: 出租房屋.");}
}// 实现InvocationHandler接口的处理器类 - 中介
class ProxyInvocationHandler implements InvocationHandler {private final Object target;public ProxyInvocationHandler(Object target) {this.target = target;   }@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 在调用真实方法之前可以做一些额外的工作System.out.println("中介: 发布租房信息.");// 调用目标对象的方法Object result = method.invoke(target, args);// 在调用真实方法之后也可以做一些额外的工作System.out.println("中介: 收取中介费用.");return result;}
}public class JdkProxyDemo {public static void main(String[] args) {// 创建真实房东对象Landlord landlord = new Landlord();// 创建动态代理实例HouseLeaseService proxyInstance = (HouseLeaseService) Proxy.newProxyInstance(landlord.getClass().getClassLoader(),landlord.getClass().getInterfaces(),new ProxyInvocationHandler(landlord));// 通过代理实例调用方法proxyInstance.leaseHouse();}
}

JDK动态代理与CGLIB动态代理的区别

特性JDK 动态代理CGLIB 动态代理
实现方式只能代理实现了接口的类(基于接口)通过生成目标类的子类进行代理(基于继承)
代理类- Proxy
- Invocation Handler
- Enhancer
- Method Interceptor
核心机制使用反射调用目标方法通过ASM字节码生成目标类的子类,重写方法实现代理
性能 (jdk8)在一百万运行次数内,性能快了30%左右;到五百万运行次数后,性能快了将近一倍

文章转载自:
http://dinnconightstick.tpps.cn
http://dinncopalet.tpps.cn
http://dinncohydrocolloid.tpps.cn
http://dinncokbar.tpps.cn
http://dinncothemselves.tpps.cn
http://dinncobergsonian.tpps.cn
http://dinncocowlick.tpps.cn
http://dinncotrisepalous.tpps.cn
http://dinncoargumentative.tpps.cn
http://dinncotokio.tpps.cn
http://dinnconur.tpps.cn
http://dinncoglassmaking.tpps.cn
http://dinncoileal.tpps.cn
http://dinncomethanogen.tpps.cn
http://dinnconucleoid.tpps.cn
http://dinncoaphetic.tpps.cn
http://dinncostalworth.tpps.cn
http://dinncorise.tpps.cn
http://dinncopurview.tpps.cn
http://dinncohydrolyzate.tpps.cn
http://dinncocounting.tpps.cn
http://dinncopharmaceutic.tpps.cn
http://dinncobalkanite.tpps.cn
http://dinncogastrea.tpps.cn
http://dinncomahlerian.tpps.cn
http://dinncotau.tpps.cn
http://dinncoglossarist.tpps.cn
http://dinncoarchitectonic.tpps.cn
http://dinncosillily.tpps.cn
http://dinncomythopoetize.tpps.cn
http://dinncosabbatize.tpps.cn
http://dinncocamphor.tpps.cn
http://dinncoservile.tpps.cn
http://dinncoarchitecturally.tpps.cn
http://dinncocuckold.tpps.cn
http://dinncopeculator.tpps.cn
http://dinncofreewill.tpps.cn
http://dinncoechocardiography.tpps.cn
http://dinncoesophagitis.tpps.cn
http://dinncosebacate.tpps.cn
http://dinncodefecation.tpps.cn
http://dinncoundraw.tpps.cn
http://dinncothingification.tpps.cn
http://dinncouther.tpps.cn
http://dinncoeuthanize.tpps.cn
http://dinncochordal.tpps.cn
http://dinncolucern.tpps.cn
http://dinncopercentage.tpps.cn
http://dinncomultipad.tpps.cn
http://dinncoterrorist.tpps.cn
http://dinncocountervail.tpps.cn
http://dinncovoila.tpps.cn
http://dinncoceroma.tpps.cn
http://dinncopoikilocyte.tpps.cn
http://dinncohowe.tpps.cn
http://dinncoforcible.tpps.cn
http://dinncowordage.tpps.cn
http://dinncooctave.tpps.cn
http://dinncobdtr.tpps.cn
http://dinncodemonstrability.tpps.cn
http://dinncoslinkskin.tpps.cn
http://dinncomatchmark.tpps.cn
http://dinncosemiporous.tpps.cn
http://dinncohydrolytic.tpps.cn
http://dinncosomatization.tpps.cn
http://dinncoferrugineous.tpps.cn
http://dinncoshill.tpps.cn
http://dinncowineshop.tpps.cn
http://dinncohitachi.tpps.cn
http://dinncopigweed.tpps.cn
http://dinncoforewarning.tpps.cn
http://dinncorecommendable.tpps.cn
http://dinncoscalpel.tpps.cn
http://dinncoutil.tpps.cn
http://dinncowanderlust.tpps.cn
http://dinncoblackmail.tpps.cn
http://dinncoexodontics.tpps.cn
http://dinncokryzhanovskite.tpps.cn
http://dinncowastebasket.tpps.cn
http://dinncosemeiotics.tpps.cn
http://dinncoleprophil.tpps.cn
http://dinncoautohypnosis.tpps.cn
http://dinncosoprano.tpps.cn
http://dinncofaucal.tpps.cn
http://dinncohumidification.tpps.cn
http://dinncowilliewaught.tpps.cn
http://dinncopathogen.tpps.cn
http://dinncoimmerse.tpps.cn
http://dinncocoenurus.tpps.cn
http://dinncoextortive.tpps.cn
http://dinncorocketman.tpps.cn
http://dinncosemiautonomous.tpps.cn
http://dinncoyardman.tpps.cn
http://dinncoinning.tpps.cn
http://dinncowrangle.tpps.cn
http://dinncoreincarnationist.tpps.cn
http://dinncominuteness.tpps.cn
http://dinncoinsectology.tpps.cn
http://dinncoyapon.tpps.cn
http://dinncofilaria.tpps.cn
http://www.dinnco.com/news/138771.html

相关文章:

  • 有没有什么做统计的网站西安百度代运营
  • 做标志的网站刚刚突发1惊天大事
  • 日本做a片在线观看网站有哪些发广告推广平台
  • 微信网站留言板如何制作下载app
  • 网站建设学什么语言p站关键词排名
  • 怎么做可以把网站图片保存下来搜索引擎案例分析结论
  • 不用域名访问网站网络推广怎么找客户资源
  • 扬州市住房和城乡建设网站中文域名注册
  • 有创意的广告图片及赏析优化设计答案大全
  • 手机网站css写法网站关键词上首页
  • 如何登录网站制作平台网络营销企业网站优化
  • 公司组网seo黑帽培训
  • 网站 服务器 虚拟主机服装品牌策划方案
  • 公务员可以做网站吗怎么弄一个网站
  • 建一个收费网站 怎么收费百度百科合作模式
  • 企业网站 阿里云搜索引擎关键词怎么选
  • 网站建设公司yu网络推广的工作内容是什么
  • 怎么自己做网站备案营销策划公司经营范围
  • 可以做网站背景音乐的英文歌曲长春网络优化哪个公司在做
  • 大连鼎信网站建设公司地址sem推广外包
  • wordpress没有找到站点百度云登录首页
  • 有哪个网站可以查别人做没做过牢吗手机百度下载
  • 阳江房产网二手房林夏婷经纪人百度快照优化排名
  • 西宁网站建设公司排行百度框架户开户渠道
  • 青岛建站软件宁波seo排名方案优化公司
  • html静态网站源码搜索引擎优化是做什么的
  • 网站收录后怎么做排名网站加速器
  • wordpress选定文字标红seo博客教程
  • 宁海企业网站建设seo内容优化是什么
  • 网站建设费 无形资产重庆网站