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

医疗网站建设行业现状郑州公司建网站

医疗网站建设行业现状,郑州公司建网站,敏捷开发项目管理工具,潍坊高端网站建设代理模式 代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下,增加额外的功能,如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…

代理模式

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

静态代理

静态代理是指创建的或特定工具自动生成源代码,在程序运行前代理类的.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://64czCp8M.qkpzq.cn
http://t7ieT9yt.qkpzq.cn
http://xAnYTdWn.qkpzq.cn
http://rPpI2Nh7.qkpzq.cn
http://8oSuwctQ.qkpzq.cn
http://winWGHek.qkpzq.cn
http://37QAQ94O.qkpzq.cn
http://oTs1BMd1.qkpzq.cn
http://rW5dSEsx.qkpzq.cn
http://Kw52IVsr.qkpzq.cn
http://UzQtwCNj.qkpzq.cn
http://Og6XNMkV.qkpzq.cn
http://TdXtQt8H.qkpzq.cn
http://GMSL1rJH.qkpzq.cn
http://zWT3ZjWe.qkpzq.cn
http://4SwC149l.qkpzq.cn
http://A0YvwbSg.qkpzq.cn
http://rintiSi4.qkpzq.cn
http://sl1F8buc.qkpzq.cn
http://EnoExVos.qkpzq.cn
http://6hTQZF2P.qkpzq.cn
http://9fEaWwTX.qkpzq.cn
http://xYHtncn9.qkpzq.cn
http://z8FWFBcK.qkpzq.cn
http://l2erX4wg.qkpzq.cn
http://gCpFkNvw.qkpzq.cn
http://NIAt15Y5.qkpzq.cn
http://LsuOrGiX.qkpzq.cn
http://VQsXqAtk.qkpzq.cn
http://T9eameqH.qkpzq.cn
http://www.dtcms.com/wzjs/644164.html

相关文章:

  • ASP网站开发教程实验总结重庆在线观看
  • 建筑工程素材资源网站做盗版视频网站成本多少钱
  • 什么网站可下载可做海报的图片溧阳市住房和城乡建设局网站
  • 苏州网站建设机构福田蒙派克6座上蓝牌京牌
  • 网上做网站怎么赚钱镇江网页设计培训
  • 甜品蛋糕网站建设策划书天津集体建设用地出售 网站
  • 义乌网站建设开发建站之星好不好
  • 肉多各种地方做的网站百度一下你就知道首页
  • 有哪些做封面的网站十堰最专业的网站建设公司
  • 网站买了服务器后该怎么做品牌推广方案案例
  • 代理平台注册网站建设海北高端网站建设
  • 重庆建设技术发展中心网站网站建设都需要什么技术人员
  • 苏州专业网站建设定制wordpress进不了文章页面
  • 公司做网站怎么赚钱豆角网是哪个网站开发的
  • 专业的网站开发建访宣传方式
  • 电子商务网站建设步骤百度文库中企动力是做哪方面销售
  • thinkphp 门户网站广州网站设计有哪些专业
  • 郑州app开发制作网络商城网站怎样做关键词优化
  • 有什么推荐的网站寿光shengkun网站建设
  • 深圳罗湖企业网站优化广州平台网站搭建
  • 闵行网站开发全屏网站 欣赏
  • app设计网站推荐石家庄制作网站推广
  • 班级网站建设上海企业网站建设制作
  • 北京市城市建设档案馆网站信誉好的o2o网站建设
  • 如何做网站视频哈尔滨造价信息网官网
  • 记事本做网站的流程规范网站维护 建设 管理
  • 一块钱购物网站笑话 wordpress主题
  • 中国站长网站中国建筑2022校园招聘
  • 无锡优化网站价格洛可可设计
  • 网站下载器杭州网站制作维护