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

摩洛哥网站后缀发布外链的平台有哪些

摩洛哥网站后缀,发布外链的平台有哪些,搜狐做app的网站,dw做的网站如何上传图片代理模式#xff08;Proxy Pattern#xff09; 简介 是一种结构型设计模式#xff0c;主要用于为某对象提供一个代理对象#xff0c;以控制对该对象的访问。通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介#xff0c;负责将客户端的…代理模式Proxy Pattern 简介 是一种结构型设计模式主要用于为某对象提供一个代理对象以控制对该对象的访问。通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介负责将客户端的请求转发给目标对象同时可以在转发请求前后进行额外的处理如权限控制、延迟加载、日志记录等而不修改目标对象的代码。在代理模式中我们创建具有现有对象的对象以便向外界提供功能接口。 元素 抽象主题Subject定义了真实主题和代理主题的共同接口这样在任何使用真实主题的地方都可以使用代理主题。真实主题Real Subject实现了抽象主题接口是代理对象所代表的真实对象。客户端直接访问真实主题但在某些情况下可以通过代理主题来间接访问。代理Proxy实现了抽象主题接口并持有对真实主题的引用。代理主题通常在真实主题的基础上提供一些额外的功能例如延迟加载、权限控制、日志记录等。客户端Client使用抽象主题接口来操作真实主题或代理主题不需要知道具体是哪一个实现类。 类型 静态代理Static Proxy代理类在编译时就已经确定代理类与目标类实现相同的接口。动态代理Dynamic Proxy代理类在运行时动态生成通常使用 Java 的 java.lang.reflect.Proxy 或 CGLIB 库来实现。保护代理Protection Proxy控制对目标对象的访问权限。虚拟代理Virtual Proxy通过代理对象来延迟对真实对象的创建或初始化。缓存代理Cache Proxy通过代理对象在一定时间内缓存目标对象的结果从而提升性能。 优点 职责分离代理模式将访问控制与业务逻辑分离。扩展性可以灵活地添加额外的功能或控制。智能化可以智能地处理访问请求如延迟加载、缓存等。 缺点 性能开销增加了代理层可能会影响请求的处理速度。实现复杂性某些类型的代理模式实现起来可能较为复杂。 静态代理 静态代理是一种在编译期就确定的代理模式。代理类需要实现与目标类相同的接口客户端通过代理类调用目标对象的方法。静态代理通常用于在方法调用前后添加额外操作比如日志记录、安全检查等。 动态代理 动态代理是在运行时动态生成代理类而不是在编译时生成。动态代理的优势是减少了重复的代理类代码并且能够在运行时灵活地处理方法调用。 jdk动态代理和cglib动态代理 JDK动态代理CGLIB动态代理代理对象必须实现接口不需要实现接口代理方式基于接口和反射基于字节码生成子类性能创建代理开销小方法调用开销较高创建代理开销大方法调用性能较好限制不能代理没有接口的类不能代理final类和final方法使用场景适用于接口驱动的开发适用于没有接口的类spring AOP默认接口时使用JDK动态代理没有接口时使用CGLIB动态代理 代码示例 静态代理 interface Subject {void doAction(); }class RealSubject implements Subject {Overridepublic void doAction() {System.out.println(doAction in RealSubject.);} }class MyProxy implements Subject {private RealSubject realSubject;public MyProxy(RealSubject realSubject) {this.realSubject realSubject;}Overridepublic void doAction() {System.out.println(Before doing action.);realSubject.doAction();System.out.println(After doing action.);} }public class StaticProxyExample {public static void main(String[] args) {RealSubject realSubject new RealSubject();MyProxy myProxy new MyProxy(realSubject);myProxy.doAction();} }JDK动态代理 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;interface Subject {void doAction(); }class RealSubject implements Subject {Overridepublic void doAction() {System.out.println(doAction in RealSubject.);} }class MyInvocationHandler implements InvocationHandler {private final Object realSubject;public MyInvocationHandler(Object realSubject) {this.realSubject realSubject;}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(Before doing action.);Object result method.invoke(realSubject, args);System.out.println(After doing action.);return result;} }public class DynamicProxyExample {public static void main(String[] args) {RealSubject realSubject new RealSubject();Subject subject (Subject) Proxy.newProxyInstance(RealSubject.class.getClassLoader(),new Class[]{Subject.class},new MyInvocationHandler(realSubject));subject.doAction();} }cglib动态代理 dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.3.0/version /dependencyimport org.springframework.cglib.proxy.Enhancer; import org.springframework.cglib.proxy.MethodInterceptor; import org.springframework.cglib.proxy.MethodProxy; import java.lang.reflect.Method;class RealSubject {public void doAction() {System.out.println(doAction in RealSubject.);} }class MyProxy implements MethodInterceptor {private Object target;public MyProxy(Object target) {this.target target;}public Object getProxyInstance() {Enhancer enhancer new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create();}Overridepublic Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {System.out.println(Before doing action.);Object result proxy.invokeSuper(obj, args);System.out.println(Before doing action.);return result;} }public class StaticProxyExample {public static void main(String[] args) {RealSubject realSubject new RealSubject();MyProxy proxy new MyProxy(realSubject);RealSubject proxyService (RealSubject) proxy.getProxyInstance();proxyService.doAction();} }
http://www.tj-hxxt.cn/news/224659.html

相关文章:

  • 安徽建设银行官方网站重庆网搜科技有限公司
  • 用模板搭建的网站备案吗在哪里建设网站
  • 企业手机网站建设公司深圳好的网站制作公司
  • 做一个购物网站价格媒体宣传
  • 什么情况下网站需要备案企业建设电商网站
  • 网站建设实训的意义wordpress主题格式
  • 网站背景居中怎么做房子设计图片
  • 网站制作哪个好薇徐州云网信息技术有限公司
  • 网站建设seo合同书wordpress 优惠券主题
  • 如何创建公司网站哪个网站做图文素材多
  • 网站设置支付宝在线支付wordpress主题制作汉化
  • 成都 网站推广建设金融网站
  • 做编程的 网站wordpress 评论 倒序
  • 营山网站建设有哪些网站可以免费做推广的
  • 网站建设调查通知黄村网站建设报价
  • 网店运营推广中级实训系统我的企业网站怎么seo
  • php 网站cookie海外模板网站有哪些
  • 无锡网站建设工作室中学生做网站
  • 营销型网站建设 兼职wordpress 去掉作者
  • 中山专业网站制作阿里云ssl wordpress
  • 网站后台制作视频教程微信开放平台介绍
  • 北京做网站优化的科技公司贵州住房和城乡建设厅旧网站
  • 四川省城乡住房和城乡建设厅网站相亲网站开发与设计报告
  • 官网和网站的区别济宁网络
  • Wordpress网站开发收费游戏制作软件培训
  • 创意活动策划网站工作组赴哈尔滨
  • 公司网站做的比较好自己制作的网站怎么发布
  • 花生壳域名直接做网站阿里云免费建站
  • 网站开发环境包括什么seo外链怎么发
  • 网站联动商业网站设计