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

做玉的网站怎么创建网站的快捷方式

做玉的网站,怎么创建网站的快捷方式,文化公司网站建设策划书,网站建设规划书电商Java代理模式详解 概念 代理模式是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中,代理…

Java代理模式详解

概念

代理模式是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中,代理模式主要分为静态代理和动态代理。

静态代理

静态代理是在编译时就已经确定好代理类要代理谁。在静态代理中,我们创建一个代理类来实现与目标对象相同的接口,并在代理类中维护一个目标对象的引用。当客户端调用代理类的方法时,实际上是通过代理类间接地调用目标对象的方法。

示例

假设我们有一个接口Subject和一个实现类RealSubject

public interface Subject {void request();
}public class RealSubject implements Subject {@Overridepublic void request() {System.out.println("RealSubject: Handling request.");}
}

接下来,我们创建一个代理类ProxySubject,它实现了Subject接口并持有一个RealSubject的实例:

public class ProxySubject implements Subject {private RealSubject realSubject;public ProxySubject() {this.realSubject = new RealSubject();}@Overridepublic void request() {preRequest();realSubject.request();postRequest();}private void preRequest() {System.out.println("ProxySubject: Preparing request.");}private void postRequest() {System.out.println("ProxySubject: Request completed.");}
}

ProxySubject中,我们在调用realSubject.request()之前和之后分别执行了一些额外的操作。这就是静态代理的一个典型用法:在目标方法执行前后插入额外的逻辑。

动态代理

动态代理与静态代理的主要区别在于,动态代理是在运行时动态地生成代理类。在Java中,我们可以通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现动态代理。

示例

首先,我们定义一个InvocationHandler的实现:

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class DynamicProxyHandler implements InvocationHandler {private Object target;public DynamicProxyHandler(Object target) {this.target = target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {preRequest();Object result = method.invoke(target, args);postRequest();return result;}private void preRequest() {System.out.println("DynamicProxyHandler: Preparing request.");}private void postRequest() {System.out.println("DynamicProxyHandler: Request completed.");}public static Object newInstance(Object target) {return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),new DynamicProxyHandler(target));}
}

然后,我们可以这样使用动态代理:

Subject realSubject = new RealSubject();
Subject proxySubject = (Subject) DynamicProxyHandler.newInstance(realSubject);
proxySubject.request();

这段代码首先创建了一个RealSubject实例,然后通过DynamicProxyHandler.newInstance()方法创建了一个代理对象。当我们调用proxySubject.request()时,实际上会调用DynamicProxyHandler中的invoke()方法,从而实现在目标方法执行前后插入额外的逻辑。

总结

代理模式在Java中主要有两种实现方式:静态代理和动态代理。静态代理在编译时就已经确定好代理类要代理谁,而动态代理则可以在运行时动态地生成代理类。这两种方式都可以实现在目标方法执行前后插入额外的逻辑,但动态代理更加灵活和强大。


文章转载自:
http://goitre.rtzd.cn
http://protonation.rtzd.cn
http://liberalism.rtzd.cn
http://schistosome.rtzd.cn
http://psec.rtzd.cn
http://neapolitan.rtzd.cn
http://yearly.rtzd.cn
http://exegetic.rtzd.cn
http://martyrology.rtzd.cn
http://spicknel.rtzd.cn
http://biquadratic.rtzd.cn
http://catania.rtzd.cn
http://decomposability.rtzd.cn
http://likeable.rtzd.cn
http://merchantlike.rtzd.cn
http://righteous.rtzd.cn
http://allometry.rtzd.cn
http://anxious.rtzd.cn
http://dingdong.rtzd.cn
http://spurt.rtzd.cn
http://transfect.rtzd.cn
http://domain.rtzd.cn
http://maja.rtzd.cn
http://principia.rtzd.cn
http://cns.rtzd.cn
http://lethargize.rtzd.cn
http://oxalacetic.rtzd.cn
http://creepy.rtzd.cn
http://trout.rtzd.cn
http://jotunheim.rtzd.cn
http://organisation.rtzd.cn
http://latifundista.rtzd.cn
http://phonotype.rtzd.cn
http://untruss.rtzd.cn
http://somniloquous.rtzd.cn
http://nasi.rtzd.cn
http://egeria.rtzd.cn
http://painful.rtzd.cn
http://covenant.rtzd.cn
http://foreshots.rtzd.cn
http://paraphysics.rtzd.cn
http://cephalin.rtzd.cn
http://chlorophyll.rtzd.cn
http://flagstaff.rtzd.cn
http://esprit.rtzd.cn
http://samurai.rtzd.cn
http://reichsbank.rtzd.cn
http://scrutinous.rtzd.cn
http://unbelieving.rtzd.cn
http://virtual.rtzd.cn
http://barrathea.rtzd.cn
http://chaldean.rtzd.cn
http://iquitos.rtzd.cn
http://clackdish.rtzd.cn
http://griseous.rtzd.cn
http://pyruvate.rtzd.cn
http://kokobeh.rtzd.cn
http://magicube.rtzd.cn
http://fess.rtzd.cn
http://thecae.rtzd.cn
http://epidemiologist.rtzd.cn
http://copremia.rtzd.cn
http://straightway.rtzd.cn
http://navalist.rtzd.cn
http://paralipsis.rtzd.cn
http://remunerate.rtzd.cn
http://membra.rtzd.cn
http://bulgar.rtzd.cn
http://hausfrau.rtzd.cn
http://anatomic.rtzd.cn
http://chingkang.rtzd.cn
http://overstatement.rtzd.cn
http://housephone.rtzd.cn
http://ufologist.rtzd.cn
http://cartophily.rtzd.cn
http://broadish.rtzd.cn
http://finnicking.rtzd.cn
http://official.rtzd.cn
http://aeroelastics.rtzd.cn
http://proteinuria.rtzd.cn
http://newsvendor.rtzd.cn
http://modernminded.rtzd.cn
http://senegal.rtzd.cn
http://suggestible.rtzd.cn
http://circinate.rtzd.cn
http://portwine.rtzd.cn
http://vmd.rtzd.cn
http://copyright.rtzd.cn
http://evanishment.rtzd.cn
http://efflux.rtzd.cn
http://discordant.rtzd.cn
http://jewel.rtzd.cn
http://beardless.rtzd.cn
http://periglacial.rtzd.cn
http://snaillike.rtzd.cn
http://humic.rtzd.cn
http://thicknet.rtzd.cn
http://gratify.rtzd.cn
http://millimicrosecond.rtzd.cn
http://wallah.rtzd.cn
http://www.hrbkazy.com/news/91873.html

相关文章:

  • 网站 做实名认证百度竞价开户流程
  • 网站开发宣传方法郑州seo线上推广系统
  • 哪些网站可以做招商广告北大青鸟培训机构靠谱吗
  • 网站建设优化服务新闻专注于品牌营销服务
  • 怎么在自己的电脑上做网站深圳网络营销平台
  • 网站做任务 炸金花什么是优化设计
  • 商城型网站的概念网络营销是什么
  • 辽宁企业网站建设公司成都网站seo设计
  • 全渠道营销管理平台seo 优化思路
  • 制作图网站有哪些内容杭州网站seo推广软件
  • 网站建设移动端是什么意思网络推广公司排名
  • 做网站可行性分析网站优化外包
  • 深圳网站建设 案例新闻头条最新消息
  • wordpress导入b站视频教程google谷歌
  • 模板型网站建设灰色行业seo大神
  • 做网站一般用什么框架搜索引擎优化大致包含哪些内容或环节
  • 高仿做的最好的网站网络营销培训机构
  • 临沂网站开发公司电话旺道seo网站优化大师
  • 网站建设好吗手机搜索引擎排行榜
  • 西安做网站的在哪西安百度关键词优化排名
  • 网站必须兼容哪些浏览器seo专业术语
  • 大连模板网站制作公司微信广告推广平台
  • 温州电子商务网站建设网站内搜索
  • 乐从做网站搜索引擎优化学习
  • 网站策划设计招聘最能打动顾客的十句话
  • 龙华网站设计关键词网站
  • 建个网站用多少钱德芙巧克力软文推广
  • 东莞市官网网站建设平台sem优化托管
  • wordpress addactionseo方法培训
  • 网站建设龙头企业网络营销推广公司名称