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

免费的ui设计的网站程序员培训班要多少钱

免费的ui设计的网站,程序员培训班要多少钱,免费企业网站管理系统,找北京赛车网站开发代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种#xff0c;属于结构型模式。它的作用就是通过提供一个代理类#xff0c;让我们在调用目标 方法的时候#xff0c;不再是直接对目标方法进行调用#xff0c;而是通过代理类间接调用。让不… 代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种属于结构型模式。它的作用就是通过提供一个代理类让我们在调用目标 方法的时候不再是直接对目标方法进行调用而是通过代理类间接调用。让不属于目标方法核心逻辑 的代码从目标方法中剥离出来——解耦。调用目标方法时先调用代理对象的方法减少对目标方法的调 用和打扰同时让附加功能能够集中在一起也有利于统一维护。 使用代理后 ②生活中的代理 广告商找大明星拍广告需要经过经纪人 合作伙伴找大老板谈合作要约见面时间需要经过秘书 房产中介是买卖双方的代理 ③相关术语 代理将非核心逻辑剥离出来以后封装这些非核心逻辑的类、对象、方法。 目标被代理“套用”了非核心逻辑代码的类、对象、方法。 1.静态代理 创建接口 public interface Calculator {int add(int i, int j);int sub(int i, int j);int mul(int i, int j);int div(int i, int j);} 创建实现类 public class CalculatorImpl implements Calculator {Overridepublic int add(int i, int j) {int result i j;System.out.println(方法内部resultresult);return result;}Overridepublic int sub(int i, int j) {int result i - j;System.out.println(方法内部resultresult);return result;}Overridepublic int mul(int i, int j) {int result i * j;System.out.println(方法内部resultresult);return result;}Overridepublic int div(int i, int j) {int result i / j;System.out.println(方法内部resultresult);return result;} }创建静态代理类 public class CalculatorStaticProxy implements Calculator {// 将被代理的目标对象声明为成员变量private Calculator target;public CalculatorStaticProxy(Calculator target) {this.target target;}Overridepublic int add(int i, int j) { // 附加功能由代理类中的代理方法来实现System.out.println([日志] add 方法开始了参数是 i , j); // 通过目标对象来实现核心业务逻辑int addResult target.add(i, j);System.out.println([日志] add 方法结束了结果是 addResult);return addResult;} }静态代理确实实现了解耦但是由于代码都写死了完全不具备任何的灵活性。就拿日志功能来 说将来其他地方也需要附加日志那还得再声明更多个静态代理类那就产生了大量重复的代 码日志功能还是分散的没有统一管理。 提出进一步的需求将日志功能集中到一个代理类中将来有任何日志需求都通过这一个代理 类来实现。这就需要使用动态代理技术了。 测试 Testpublic void testProxy(){CalculatorStaticProxy proxy new CalculatorStaticProxy(new CalculatorImpl());proxy.add(1, 2);} 2.动态代理 生产代理对象的工厂类 public class ProxyFactory {private Object target;public ProxyFactory(Object target) {this.target target;}public Object getProxy(){/*** ClassLoader loader指定加载动态生成的代理类的类加载器* Class[] interfaces获取目标对象实现的所有接口的class对象的数组* InvocationHandler h设置代理类中的抽象方法如何重写*/ClassLoader classLoader this.getClass().getClassLoader();Class?[] interfaces target.getClass().getInterfaces();InvocationHandler h new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Object result null;try {System.out.println(日志方法method.getName()参数 Arrays.toString(args));//proxy表示代理对象method表示要执行的方法args表示要执行的方法到的参数列表result method.invoke(target, args);System.out.println(日志方法method.getName()结果 result);} catch (Exception e) {e.printStackTrace();System.out.println(日志方法method.getName()异常 e);} finally {System.out.println(日志方法method.getName()方法执行完毕);}return result;}};return Proxy.newProxyInstance(classLoader, interfaces, h);} }测试 Testpublic void testProxy1(){/*CalculatorStaticProxy proxy new CalculatorStaticProxy(new CalculatorImpl());proxy.add(1, 2);*/ProxyFactory proxyFactory new ProxyFactory(new CalculatorImpl());Calculator proxy (Calculator) proxyFactory.getProxy();proxy.div(1,1);
http://www.dnsts.com.cn/news/30744.html

相关文章:

  • 教育网站赏析做国内网站多少钱
  • 青岛 网站开发查看网站服务器ip
  • 空间站做网站有什么广州天成网络技术有限公司
  • 顺义的网站建设公司手机网站头部
  • 编程网站入口wordpress 加跳板
  • 网站开发小程序开发公司本地电脑做服务器 建网站
  • 东莞外贸公司网站建设品牌营销公司排名
  • 新手做自己的网站教程新品牌推广方案
  • 网站突然排名没了国内优秀网站设计欣赏
  • 秦皇岛做网站的公司哪家好南宁网络推广建站
  • 银川网站开发制作济南网站建设 联系小七
  • 博客建站程序网页版qq邮箱登陆登录入口
  • 最便宜的酒店网站建设办公oa系统排行
  • 东莞网站设计报价站长工具ip地址查询
  • 网站免费推广方式陕西建设技术学院网站
  • 互联网网站 权限代理小程序怎么赚钱
  • 山东专业网站建设网站项目的工作流程
  • 建网站的八个步骤深圳福田最新消息今天
  • 鞍山市做网站公司衡水建站公司
  • 自己做的网站怎么传入外网网页制作教程免费下载
  • 潍坊市奎文建设局网站河北网站建设seo优化营销制作设计
  • 购物网站排名2015有什么好的免费网站做教育宣传
  • 做网站的 简历顺飞网站建设怎么样
  • 网站建设公司做网站需要注意什么网站模版免费下载
  • 台州自助建站在线咨询网站开发内容和方法
  • 河南高端网站高端网站建设做全景哪个网站不模糊
  • 风铃网站具体是做那方面的网站建设公司挣钱吗
  • 南昌网站建设信息电脑和手机同步编辑wordpress
  • 备案主体负责人和网站负责人辽宁建设工程信息网官方网站
  • 广西智能网站建设方案深圳能源集团股份有限公司