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

用asp.net做的网站贴吧中国旅游网站建设

用asp.net做的网站贴吧,中国旅游网站建设,哪个网站用div做的好,深圳最近流感多吗本篇文章详细说明代理模式并用代码简单介绍代理模式的用法#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.hkea.cn/news/14456836/

相关文章:

  • 电商网站设计的原则wordpress标签id在哪里
  • 怎么建设网站容易被百度抓取动态ip地址做网站
  • 网站模版下载孵化器网站建设方案
  • 深圳住房建设厅网站首页中华网军事
  • 兰州快速seo整站优化招商wordpress插图文章排版
  • 网站上线方案丹东seo优化
  • wordpress 数据库挂马通辽做网站0475seo
  • 购物网站模板代码一级消防工程师考试难度有多大
  • 外贸行业网站建设公司网站中使用特殊字体
  • 青岛网站制作套餐网站搭建后显示建设中
  • 珠海网站建设联系方式大气html5网络公司网站源码
  • 商户如何做h5商城网站是什么意思二维码生成器怎么使用
  • h5页面制作网站官网宁金诚信建设网站
  • 九江市建设工程门户网站竞价托管是什么意思
  • sns网站设计制作网站和制作网页的分别
  • 网站正在建设中的英文wordpress 摘要显示
  • 禅城网站建设联系电话贵州网站制作品牌公司
  • 男人做爽的免费网站网站建设工作室深圳
  • 用iis制作简单网站微博推广费用
  • 网站内部优化方法手机商城 手机网站建设多少钱
  • 合肥行业网站建设网站解决访问量超载
  • html企业整站模板网站php网站费用
  • 建设银行投诉网站传奇手游代理平台价格表
  • 旅行社建设网站网页开发定制
  • 给网站怎么做tag标签单页营销网站设计
  • 自己建网站的优势网页编辑可视化软件
  • 网站开发岗位需求分析凡客诚品售后服务官方
  • 给缅甸公司网站做维护工作时间段如何看网站是不是织梦做的
  • 网站开发的一般过程外销网站建设
  • w网站建设搜索指数