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

网站建设费会计处理网站建设 金手指排名霸屏

网站建设费会计处理,网站建设 金手指排名霸屏,北京交易中心网站,深圳商业网站建设推荐公司本篇文章详细说明代理模式并用代码简单介绍代理模式的用法#xff0c;以及代理模式在实际应用中的源码简单解析。 1、什么是代理模式和代码实现 代理模式是一种设计模式#xff0c;它允许在不改变原有类的情况下#xff0c;为其提供一种代理机制#xff0c;用于控制其访问…本篇文章详细说明代理模式并用代码简单介绍代理模式的用法以及代理模式在实际应用中的源码简单解析。 1、什么是代理模式和代码实现 代理模式是一种设计模式它允许在不改变原有类的情况下为其提供一种代理机制用于控制其访问权限、加强其功能等。 在Java中代理模式通常使用接口进行实现。首先我们定义一个接口它是原有类和代理类的共同接口以便于代理类能够代理原有类的所有功能。接着我们实现原有类并在代理类中持有原有类的引用以便于代理类能够访问原有类的所有方法和属性。最后我们实现代理类并在其中对原有类的方法进行控制、加强等操作。 下面我们通过一个简单的示例来介绍代理模式的实现。 首先我们定义一个接口Subject它是原有类RealSubject和代理类Proxy的共同接口以便于代理类能够代理原有类的所有功能。代码如下 public interface Subject {void request(); } 接着我们实现原有类RealSubject代码如下 public class RealSubject implements Subject {Overridepublic void request() {System.out.println(RealSubject: handling request.);} } 在代理类Proxy中我们持有原有类RealSubject的引用并在其request方法中对原有类的方法进行控制、加强等操作。代码如下 public class Proxy implements Subject {private RealSubject realSubject;public Proxy() {this.realSubject new RealSubject();}Overridepublic void request() {System.out.println(Proxy: before handling request.);realSubject.request();System.out.println(Proxy: after handling request.);} } 最后我们可以使用代理类Proxy来代理原有类RealSubject的功能代码如下 public class Test{public static void main(String[] args) {Subject subject new Proxy();subject.request();} } 以上代码的输出结果为 Proxy: before handling request. RealSubject: handling request. Proxy: after handling request. 可以看出在代理类Proxy中我们成功地控制了原有类RealSubject的方法实现了对其功能的加强。 在实际应用中代理模式通常用于控制对某个对象的访问例如对文件的访问权限、对网络资源的访问权限等。同时代理模式还可以用于实现远程调用、懒加载等功能。 2、代理模式实际应用 Retrofit源码中使用了代理模式来实现对API接口的访问具体的实现在Retrofit的create方法中。 在Retrofit中我们首先通过Retrofit.Builder来创建一个Retrofit实例并通过该实例的create方法来创建一个代理类。在create方法中Retrofit会根据传入的API接口类生成一个动态代理类并在代理类中实现对API接口的访问。 下面我们来看一下Retrofit中create方法的源码实现 public T T create(final ClassT service) {// 省略部分代码...// 创建动态代理类return (T) Proxy.newProxyInstance(service.getClassLoader(), new Class?[] { service },new InvocationHandler() {private final Platform platform Platform.get();private final Object[] emptyArgs new Object[0];Override public Nullable Object invoke(Object proxy, Method method,Nullable Object[] args) throws Throwable {// 省略部分代码...// 创建Call对象Call? call serviceMethod.toCall(args);// 省略部分代码...// 发送请求并返回响应return callAdapter.adapt(call);}}); }可以看出create方法中的Proxy.newProxyInstance方法会根据传入的API接口类和InvocationHandler来生成一个动态代理类。在该动态代理类中InvocationHandler会实现对API接口方法的访问。 在InvocationHandler的invoke方法中首先通过serviceMethod.toCall(args)方法创建一个Call对象该Call对象表示一个网络请求。然后通过callAdapter.adapt(call)方法将Call对象转换为一个响应对象并返回给调用者。 通过以上代码我们可以看出Retrofit是如何使用代理模式来实现对API接口的访问的。通过动态代理类和InvocationHandlerRetrofit能够实现对API接口方法的访问并将其转换为网络请求和响应。 3、总结 总之代理模式是一种非常有用的设计模式在Java中也有广泛的应用。我们可以通过定义接口、实现原有类和代理类等步骤来实现对原有类的控制、加强等操作从而实现更为灵活、安全和高效的应用。
http://www.dnsts.com.cn/news/144412.html

相关文章:

  • 重庆网站建设招标编写软件开发文档
  • 网站建设仟首先金手指14虚拟机 网站建设
  • 网站建设裕鸿国际WordPress如何设置付费下载
  • 东莞做网站公司哪家好企业网站设计的特点
  • 都匀网站制作奈曼旗建设局网站
  • 网站地图的作用网页制作与网站建设宝典pdf
  • 镇江佳鑫网络科技有限公司seo的宗旨是
  • 最简单的网站模板下载湖南城乡住房建设厅网站
  • 网站建设合同 域名续期能打开任何网站浏览器下载
  • 网站建设广告词17做网店广州货源网
  • 网站开发开票内容专业做网带
  • 蛋白质结构预测工具网站开发做海报可以在哪些网站下载素材
  • 城乡和建设部建造师网站金华网站制作推广
  • 成品网站 代理wordpress 验证表单
  • 目前网站开发语言飞猪旅游的网站建设
  • 嘉兴模板建站软件商城网站做推广方案
  • 上海做ui网站最好的公司90字体设计
  • 酷站网官网莱芜庞允盟
  • 中国空间站研究项目软件设计师考什么
  • 客户买东西返利网站怎么做推广网站制作
  • 做网站设计好的公司Oss怎么做静态网站
  • 做网站的就业前景网站为什么要改版
  • 礼品网站建设广州番禺网站建设公司推荐
  • 建站优化是什么国家卫生健康官网入口
  • PHP网站开发常用函数wordpress手机端发布软件
  • 做网站需要多少职务iis网站架设教程
  • 数据网站建设多少钱网站设计论文5000
  • 小说网站建设百度口碑
  • 企业网站价格花家私公司网站建设多少钱
  • 网站建设课程设计报告总结wordpress短视频模板