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

郑州网站制作选择乐云seo天津滨海新区小程序网站建设

郑州网站制作选择乐云seo,天津滨海新区小程序网站建设,传奇手游源码网,经典 wordpress主题代理就像是#xff1a;买家(客户端)——销售(代理对象)——工厂(目标) 买家不用直接去工厂买#xff0c;而是直接通过销售就可以购买到#xff0c;假设工厂生产的是杯子#xff0c;那么工厂只需要提供杯子#xff0c;而销售在不改变杯子的生产过程的情况下对杯子进行包装设…代理就像是买家(客户端)——销售(代理对象)——工厂(目标) 买家不用直接去工厂买而是直接通过销售就可以购买到假设工厂生产的是杯子那么工厂只需要提供杯子而销售在不改变杯子的生产过程的情况下对杯子进行包装设计广告宣传。提高其销量。 代理模式中代理对象充当了被代理对象的中间人客户端通过代理对象来访问被代理对象而不是直接访问被代理对象。主要目的是在不改变原始对象的情况下提供额外的功能或控制访问。增强了代码的安全性、灵活性。 1、动态代理是什么 静态代理在编译时就已经确定代理类和被代理类的关系代理类是手动编写的。在静态代理中需要为每个被代理的类编写一个代理类。它需要手动编写代理类当被代理的类较多时会导致代码冗余。所以在这种情况下我们需要使用动态代理。 动态代理在运行时动态生成代理类和代理对象不需要手动编写代理类。在动态代理中代理类是在运行时通过反射机制动态生成的。动态代理的优点是可以减少代码冗余缺点是相对于静态代理它的实现稍微复杂一些。 2、JDK动态代理的实现方式 下面代码实例是通过调用经纪人代理对象调用明星的跳舞、rap方法。明星只负责工作而在经纪人方法当中添加收钱的功能。 定义接口我首先定义了一个Star接口该接口有dance和rap两个接口 public interface Star {/*** 跳舞*/public void dance();/*** 说唱*/public void rap(); }创建Star接口实现类在这个类当中将两个方法实现 public class OnePeople implements Star{Overridepublic void dance() {System.out.println(我跳舞了);}Overridepublic void rap() {System.out.println(我唱了rap);} } 创建InvocationHandler实现类 //当调用代理对象的方法时实际上是调用了invoke()方法。在invoke()方法中可以根据需要执行一些前置或后置操作然后将方法调用转发给实际的对象。 public class MyInvocationHandler implements InvocationHandler {//被代理对象Object object;public MyInvocationHandler (Object o){object o;}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(我已经收好钱了我的boss可以开始工作了);//通过反射调用被代理对象的方法。Object invoke method.invoke(object, args);System.out.println(我们已经工作完毕,拍拍屁股离开);return invoke;} } 创建代理对象 public class Demo {public static void main(String[] args) {OnePeople onePeople new OnePeople();MyInvocationHandler myInvocationHandler new MyInvocationHandler(onePeople);//newProxyInstance()接受三个参数类加载器、要实现的接口列表和一个InvocationHandler对象// 返回的是实现指定接口的代理类的实例。这个实例可以被强制转换为接口类型以便在代码中使用。Star star (Star) Proxy.newProxyInstance(onePeople.getClass().getClassLoader(),onePeople.getClass().getInterfaces(), myInvocationHandler);//调用跳舞方法star.dance();//调用rap方法star.rap();} } 运行结果 注意JDK动态代理只能代理接口不能代理具体的类。如果要代理具体的类可以考虑使用其他的代理机制CGLIB机制。 3、动态代理的优点 灵活性动态代理可以在运行时创建代理对象而不需要在编译时就确定代理对象的类型。这使得动态代理更加灵活可以根据需要动态地创建不同类型的代理对象。 可扩展性动态代理可以通过实现InvocationHandler接口来自定义代理对象的行为。通过在InvocationHandler中编写自定义的逻辑可以在代理对象的方法调用前后进行额外的操作如日志记录、性能监控、事务管理等。这种可扩展性使得动态代理在很多场景下非常有用。 低耦合性动态代理可以将代理对象的创建和代理逻辑的实现分离开来从而实现低耦合性。代理对象的创建可以由代理工厂或者依赖注入容器等负责而代理逻辑的实现可以由InvocationHandler来完成。这种低耦合性使得代码更加清晰、易于维护和扩展。 动态性动态代理可以在运行时动态地修改代理对象的行为。这意味着可以根据需要动态地添加、修改或删除代理对象的方法从而实现更加灵活的代理逻辑。
http://www.hkea.cn/news/14495715/

相关文章:

  • 浙江网站建设费用开源免费cms
  • 制作收款网站个人单页网站建设
  • 最新网站源码做网站包域名包服务器多少钱
  • 师德师风建设好的小学网站wordpress不同page
  • 哪些网站是单页应用怎么免费创建一个网站
  • 网站备案域名更改一般使用的分辨率是多少dpi?
  • 电子商务电商网站饿建设html 新手入门
  • 企业网站展示网站链接查询
  • 做任务能赚钱的网站有哪些网站建设销售好
  • 中企动力做网站费用做电影网站怎样赚钱吗
  • 深圳建站公司设计深业集团建立企业门户网站
  • 怎么样做网站爬虫网站建设的岗位职责
  • 潞城网站建设公司学校做网站一般多少钱
  • 网站cms管理后台电话号码jsp网站开发实例
  • 罗湖做网站公司.top和网站
  • 国外wordpress商城搜索引擎优化的方法与技巧
  • 汕头网站制作哪家强全国企业信用信息公示系统河北
  • 淄博网站快照优化公司平面设计h5指的是什么
  • 本地的唐山网站建设天津做网站印标
  • 前端自己写代码建网站要花多少钱自己电脑做网站空间
  • 唐山网站建设公司哪家好成都食品网站开发
  • 网站建设方案的摘要wordpress过滤
  • 浙江省建设监理协会网站网站开发员工资
  • 网站开发的后端网站中的ppt链接怎么做的
  • 介绍网站建设建设房地产网站
  • 网站建设教案dw网站内链wordpress插件
  • 手机网站模板尺寸网站图片设计效果图
  • 网站流程表电脑系统重装后没有wordpress
  • 百度网站的优化方案网站建设美文
  • 网站内容 优化群晖nas 做网站