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

成都网站建设哪个好手机版网站设计案例

成都网站建设哪个好,手机版网站设计案例,重庆网站建设开发,制作网站的专业公司一、代理模式#xff08;Proxy#xff09; 1.代理模式的定义 代理模式给某一个对象提供一个代理对象#xff0c;并由代理对象控制对真实对象的访问#xff0c;起到对代理对象已有功能的增强 通俗的来讲代理模式就是我们生活中常见的中介。 2.作用 中介隔离作用#x…一、代理模式Proxy 1.代理模式的定义 代理模式给某一个对象提供一个代理对象并由代理对象控制对真实对象的访问起到对代理对象已有功能的增强 通俗的来讲代理模式就是我们生活中常见的中介。 2.作用 中介隔离作用在某些情况下一个客户类不想或者不能直接引用一个委托对象 而代理类对象可以在客户类和委托对象之间起到中介的作用其特征是代理类和委托类实现相同的接口。 开闭原则增加功能代理类除了是客户类和委托类的中介之外我们还可以通过给代理 类增加额外的功能来扩展委托类的功能这样做我们只需要修改代理类而不需要再修改委托类符合代码设计的开闭原则。 3.代理模式的分类 我们有多种不同的方式来实现代理。如果按照代理创建的时期来进行分类的话可以分为两种 静态代理: 静态代理是由程序员创建或特定工具自动生成源代码在对其编译。在程序员运行之前代理类.class文件就已经被创建了。 动态代理: 动态代理是在程序运行时通过反射机制动态创建的。 动态代理分为: 基于接口的动态代理jdk自带 基于子类的动态代理第三方 二、静态代理 所谓“静态 ”也就是在程序运行前就已经存在代理类的字节码文件代理类和被代理对象的关系在运行前就确定了。 1.定义接口 interface ISinger{public void sing(); } 2.定义被代理类 public class SingerImp implements Isinger{Overridepublic void sing(){Systm.out.println(莫等闲);} } 3.定义代理类 public class SingerProxy implements Isinger{Isinger realsinger;public SingerProxy(Isinger realsinger) {this.realsinger realsinger;}Overridepublic void sing(){Systm.out.println(大家好);realsinger.sing();Systm.out.println(谢谢);} } 4.定义客户端查看执行结果 public class Test {public static void main(String[] args) {//1.创建被代理对象Isinger realsinger new SingerImp();//2.创建代理Isinger proxysinger new SingerProxy(realsinger);proxysinger.sing();} } 输出结果 大家好 莫等闲 谢谢 从上面的代码可以看出静态代理存在被代理类和代理类之间耦合度过高。 三、动态代理 “动态”代理的源码是在程序运行期间由 JVM 根据反射等机制动态的生成所以在运行前并不存在代理类的字节码文件。 1.使用JDk 1.1 定义接口 interface ISinger{public void sing(); } 1.2 定义被代理类 public class ZhaoYiTing implements ISinger{Overridepublic void sing() {System.out.println(易燃易爆炸);} } 1.3 定义客户端查看执行结果 public class test01 {public static void main(String[] args) {//1.创建被代理对象ISinger zhaoYiTing new ZhaoYiTing();//2.创建代理对象ISinger jinjiren (ISinger)Proxy.newProxyInstance(zhaoYiTing.getClass().getClassLoader(), zhaoYiTing.getClass().getInterfaces(), new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//功能增强System.out.println(自我介绍);Object obj method.invoke(zhaoYiTing, args);return obj;}});jinjiren.sing();} } 输出结果 自我介绍 易燃易爆炸 2.使用第三方CGLIB 2.1 定义接口 interface ISinger{public void sing(); } 2.2 定义被代理类 public class ZhaoYiTing implements ISinger{Overridepublic void sing() {System.out.println(莫等闲);} } 2.3 定义客户端查看执行结果 public class test {public static void main(String[] args) {ISing imp new tenggeerImp();ISing jin (ISing)Enhancer.create(imp.getClass(), imp.getClass().getInterfaces(), new InvocationHandler() {Overridepublic Object invoke(Object o, Method method, Object[] objects) throws Throwable {Object obj method.invoke(imp, objects);return obj;}});jin.sing();} } 输出结果 莫等闲
http://www.hkea.cn/news/14427872/

相关文章:

  • 阜宁住房和城乡建设局网站做水浒传有关的网站
  • 鸿扬家装网站建设两学一做考学网站
  • 天津网站开发培训学校哪个浏览器看黄页最快夸克浏览器
  • 网站建设公司那家好做网站主题
  • 小程序开发者免费网站建设优化
  • 深圳网站建设外包公司排名免费的网站域名查询565wcc
  • 做网站怎么做小图标网站开发与
  • 做我的狗在什么网站上看wordpress美食主题
  • 手机网站js电话悬浮新中式装修风格效果图
  • 菏泽网站建设 梧桐树网站建设与应用
  • 专注网站基础优化今天刚刚长沙
  • 网站建设推荐书籍广西医科大学网站建设
  • 网站的导入流量怎么做梅河口信息网
  • 网络安全企业十大seo公司
  • 公司网站建设合规吗为什么我的网站无法访问
  • 瀑布流分享网站源代码下载专业建设主考学校是什么意思
  • 上海学习网站建设天津网站制作建设
  • 中国最大的免费素材网站番号网站怎么做
  • 网站功能建设上海门户网站制
  • 网站开发和优化关系六安短视频优化费用
  • 昆明hph网站建设中国新闻社副社长
  • 静安西安网站建设网上做室内设计好的网站
  • 中国建设教育协会培训中心网站百度ocpc如何优化
  • 有主体新增网站海南省两学一做网站
  • 深圳网站建设及优化阿里云认证网站建设题库
  • 网站建设 软件 开源台州网站建设哪家便宜
  • 做展示网站要恋用什么程序软件工程最好的出路
  • 制作网站软件网站上海市建设干部学校网站
  • 甜品网站建设策划书wordpress jiathis
  • 电子购物网站开发公司莱芜做网站的商家有哪些