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

地方网站盈利模式济宁网站建设怎么样

地方网站盈利模式,济宁网站建设怎么样,哪里可以学家装设计师,wordpress文艺主题概念#xff1a; 代理模式#xff08;Proxy Pattern#xff09;是一种结构型设计模式#xff0c;它允许通过创建一个代理对象来控制对原始对象的访问。代理对象充当了客户端和目标对象之间的中介#xff0c;可以在不改变目标对象的情况下增加额外的功能或限制访问。 特点… 概念 代理模式Proxy Pattern是一种结构型设计模式它允许通过创建一个代理对象来控制对原始对象的访问。代理对象充当了客户端和目标对象之间的中介可以在不改变目标对象的情况下增加额外的功能或限制访问。 特点 代理模式通过引入代理类来隐藏真实对象并提供了与真实对象相同的接口使得客户端无需直接与真实对象交互。代理类可以在调用真实对象之前或之后执行额外的操作如权限验证、缓存等。客户端无法区分是否使用了代理因为它们都遵循相同的接口。 优点 降低系统耦合度将客户端和目标对象解耦减少对目标类直接依赖。提高安全性通过代理进行权限验证和访问控制。增强扩展性可以在不修改源代码的情况下增加新功能。 缺点 增加复杂性引入了额外的间接层在一些简单场景下可能会增加代码复杂性。对于某些涉及频繁调用的方法由于需要经过多次转发导致性能降低。 适用场景 远程代理用于在不同地址空间中访问对象如远程方法调用RPC。虚拟代理用于按需加载大对象或延迟创建昂贵的对象以提高系统性能。安全代理用于控制对敏感资源的访问权限。智能引用代理用于添加额外的操作如缓存、日志记录等。 实现方式 静态代理 实现原理 在编译时就已经确定了被代理类和具体的代理类在代码中直接定义一个具体的实现类作为目标对象和一个对应的具体实现类作为代理对象。静态代理需要手动编写每个方法的转发逻辑并且只能针对特定类型进行操作。 实现代码 // 目标接口 interface Image {void display(); }// 目标类 class RealImage implements Image {private String filename;public RealImage(String filename) {this.filename filename;loadFromDisk();}private void loadFromDisk() {System.out.println(Loading image: filename);}Overridepublic void display() {System.out.println(Displaying image: filename);} }// 代理类 class ImageProxy implements Image {private String filename;private RealImage realImage;public ImageProxy(String filename) {this.filename filename;this.realImage null; // 初始时不加载真实对象}Overridepublic void display() {if (realImage null) { // 懒加载只有在需要时才创建真实对象realImage new RealImage(filename);}realImage.display();} }public class Main {public static void main(String[] args) {Image image1 new ImageProxy(image1.jpg);//无输出// 使用代理显示图片只有在调用 display() 方法时才会加载真实图片对象image1.display();//输出 Loading image: image1.jpg// Displaying image: image1.jpgImage image2 new RealImage(image2.jpg);//输出Loading image: image2.jpg// 直接使用目标类显示图片立即加载真实图片对象并显示image2.display();//输出 Displaying image: image2.jpg} }在上述示例中我们定义了一个目标接口 Image 和其具体实现类 RealImage。然后创建了一个代理类 ImagProxy来控制对目标对象的访问。当客户端创建代理类对象并不会马上加载图片只有在调用display()时才会加载图片并展示图片。在创建目标对象时会立刻加载图片。 动态代理: 动态代理是指在运行时动态生成代理类的过程它不需要手动编写具体的代理类而是通过 Java 的反射机制和字节码生成技术在内存中创建一个新的代理类并在运行时将方法调用转发给真实对象。 实现原理 定义目标接口首先需要定义一个目标接口即被代理对象所遵循的接口。实现 InvocationHandler 接口创建一个实现 java.lang.reflect.InvocationHandler 接口的类该类负责处理所有方法调用并执行相应操作。创建 Proxy 对象使用 java.lang.reflect.Proxy 类的静态方法 newProxyInstance() 来创建代理对象。此方法会返回一个实现了目标接口并由指定 InvocationHandler 处理方法调用的新对象。 实现代码: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;// 目标接口 interface Image {void display(); }// 目标类 class RealImage implements Image {private String filename;public RealImage(String filename) {this.filename filename;loadFromDisk();}private void loadFromDisk() {System.out.println(Loading image: filename);}Overridepublic void display() {System.out.println(Displaying image: filename);} }// InvocationHandler 实现类 class ImageInvocationHandler implements InvocationHandler {private Object target;public ImageInvocationHandler(Object target) {this.target target;}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 在方法调用前后可以执行一些额外操作如权限验证、日志记录等System.out.println(Before method invocation);Object result method.invoke(target, args);System.out.println(After method invocation);return result;} }public class Main {public static void main(String[] args) {RealImage realImage new RealImage(image.jpg);// 创建代理对象并绑定目标对象和 InvocationHandler 对象Image proxyImage (Image) Proxy.newProxyInstance(realImage.getClass().getClassLoader(),realImage.getClass().getInterfaces(),new ImageInvocationHandler(realImage));// 通过代理对象调用方法实际上会转发给真实对象的相应方法并在前后执行额外操作proxyImage.display();} }在上述示例中我们定义了一个目标接口 Image 和其具体实现类 RealImage。然后创建了一个实现了 java.lang.reflect.InvocationHandler 接口的类 ImagInvocatioHandler来处理所有方法调用。最后使用 java.lang.reflect.Proxy 类的静态方法 newProxInstance() 来创建代理对象并将目标对象和 InvocationHandler 对象绑定在一起。当客户端通过代理对象调用方法时实际上会转发给真实对象的相应方法并在前后执行额外操作。使用了 Java 的反射机制和字节码生成技术在运行时动态地创建代理类。 存在问题 动态代理只能针对接口进行操作无法直接对普通类进行操作。由于每次都要通过反射来处理方法调用因此性能上可能会有一些损耗。
http://www.sadfv.cn/news/151748/

相关文章:

  • 沈阳 教育 公司 网站建设郓城住房和城乡建设厅网站
  • 黄浦网站建设推广做淘客网站的公司
  • 网站建设培训多少钱广州网站建设咨询电话
  • 免费网站正能量小说海南做网站
  • windows 7 wordpress无锡网站seo报价
  • 网站后台fpt怎么在服务器建立网站
  • 如何架设一个网站黑龙江省网站前置审批网站
  • 网站的收录百度指数电脑端查询
  • wordpress iis 发布企业做网站乐云seo快速上线
  • 济南全网营销型网站建设通州网站开发公司
  • 做名片的网站叫什么来着网页传奇游戏排行榜2014前十名
  • 网站开发技术和seo的联系wordpress公告模板
  • 景县网站建设新办公司网上核名在哪个网站做
  • 大鹏新区网站建设口碑好的企业网站建设
  • 南京做网站群的公司求网站建设
  • 网站开发的工资一般是多少做一个app需要投资多少钱
  • 长春网站建设价格网站建设管理工作情况的通报
  • 网站制作网站设计企业画册设计印刷制作
  • 荣欣建设集团有限公司网站核酸检测收费
  • 北京物流网站建设关键词歌词打印
  • js特效网站wordpress wpenqueuestyle
  • 高端网站建设公司兴田德润在那里大学生创新创业网站开发
  • 自己做影视网站如何查询企业信用信息
  • 西安建设集团网站医院网站云服务器配置
  • 网站建设文献综述模板wordpress做一个网站404引导
  • 沛县网站建设xlec中国商标网官网入口
  • 外贸网站和普通网站wordpress改变主题页脚
  • 网站建设要素个人网页制作成品 设计
  • 无极门户网站电器网站建设目的
  • 东莞品托网站建设高端网站建设找哪个公司