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

团购网站推广怎么做网站充值平台怎么做的

团购网站推广怎么做,网站充值平台怎么做的,济源做网站的好公司,沧州商城网站建设Java代理模式详解 概念 代理模式是一种设计模式#xff0c;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下#xff0c;一个对象不适合或者不能直接引用另一个对象#xff0c;而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中#xff0c;代理…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://www.dnsts.com.cn/news/201893.html

相关文章:

  • 建设网站的服务费是指什么意思亚马逊提升关键词排名的方法
  • 网站网址怎么做二维码湖北省最新消息今天
  • 网站做的一般怎么评价网站建设中两个月了
  • 什么样的网站高大上外网进入学校内局域网建设的网站
  • 哪些网站是用wordpress傻瓜式做网站哪个软件好
  • 网站建设没有业务怎么办企业网站开发报价单
  • 甘肃网站建设专业品牌金融行业建设网站
  • 张家港网站设计建设PHP网站开发工程师
  • 中国最有创意的广告深圳网站设计知名乐云seo
  • 设计网站意味着什么网页制作图片大小设置
  • 企业培训公司有哪些重庆做网站seo优化选哪家好
  • 建设银行网站上改手机东莞债务优化
  • 17网站一起做网店白沟制作网站学什么
  • wordpress迁站人工智能公司
  • 凡科建站做的网站收录慢吗软件源码
  • 营山网站建设wordpress控制台
  • 网站建设技术指标国际新闻最新消息今天核废水
  • 邢台网站改版开发三牛网络推广
  • 推荐一个简单的网站制作wordpress使用插件
  • 学校网站英文郑州市建设工程信息网站
  • 做excel的网站做拍卖的网站有哪些
  • 从做系统后以前的网站打不开了合肥外贸网站建设公司排名
  • 做网站模板和服务器是一样的吗做什么网站开发好
  • 做网站加入广告联盟安庆网络推广和竞价
  • 两学一做考学网站网站建设的费用记什么科目
  • 网站设计 价格行业数据统计网站
  • 即墨哪里有做网站的平面设计公司属于什么行业类别
  • 美食网站设计方案智慧校园官网
  • 永州网站建设公司推荐吉林企业建站系统费用
  • 网站批量查询河北企业建站系统信息