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

三网合一网站建设百科建设项目竣工验收公示网站

三网合一网站建设百科,建设项目竣工验收公示网站,棋牌类网站是用游戏方式做的吗,葫芦岛黄页电话号码目录 一、背景介绍二、思路&方案三、过程1.代理模式简介2.代理模式的类图3.代理模式代码4.代理模式还可以优化的地方5.代理模式的项目实战,优化后(只加了泛型方式,使用CGLIB的代理) 四、总结五、升华 一、背景介绍 最近在做产品过程中对于日志的统一…

目录

  • 一、背景介绍
  • 二、思路&方案
  • 三、过程
    • 1.代理模式简介
    • 2.代理模式的类图
    • 3.代理模式代码
    • 4.代理模式还可以优化的地方
    • 5.代理模式的项目实战,优化后(只加了泛型方式,使用CGLIB的代理)
  • 四、总结
  • 五、升华

一、背景介绍

最近在做产品过程中对于日志的统一收集做了深入的研究,最终映射到代理模式的运用上了,通过对代理模式的再探,对代理模式的敬畏又进行了一层升华。

二、思路&方案

  • 1.代理模式简介
  • 2.代理模式的类图
  • 3.代理模式代码
  • 4.代理模式还可以优化的地方
  • 5.代理模式的项目实战,优化后

三、过程

1.代理模式简介

代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问

2.代理模式的类图

在这里插入图片描述

3.代理模式代码

package com.a7DesignPattern.a2StructuralType.a07Proxy;/*** 功能描述:** @Author:makang* @Date: 2021/5/22 10:02*/
public abstract class Subject {public abstract void Request();
}
package com.a7DesignPattern.a2StructuralType.a07Proxy;/*** 功能描述:** @Author:makang* @Date: 2021/5/22 10:03*/
public class RealSubject extends Subject{@Overridepublic void Request() {System.out.println("真实对象");}
}
package com.a7DesignPattern.a2StructuralType.a07Proxy;/*** 功能描述:** @Author:makang* @Date: 2021/5/22 10:04*/
public class Proxy extends Subject{private RealSubject realSubject;@Overridepublic void Request() {if(realSubject == null){realSubject = new RealSubject();}realSubject.Request();}
}
package com.a7DesignPattern.a2StructuralType.a07Proxy;/*** 功能描述:** @Author:makang* @Date: 2021/5/22 10:06*/
public class Client {public static void main(String[] args) {Subject subject = new Proxy();subject.Request();}
}

4.代理模式还可以优化的地方

  • 1.通过代理类中使用泛型,将被代理对象延迟到运行时定义。
  • 2.通过自定义注解或者包扫描的方式,将使用端进行一步优化

5.代理模式的项目实战,优化后(只加了泛型方式,使用CGLIB的代理)

package com.b0032AOP例子_CGLIB动态代理.V1基础例子;public class Calimpl{public int add(int num1, int num2) {return num1 + num2;}public int sub(int num1, int num2) {return num1 - num2;}public int mul(int num1, int num2) {return num1 * num2;}public int div(int num1, int num2) {return num1 / num2;}}
package com.b0032AOP例子_CGLIB动态代理.V1基础例子;import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;import java.lang.reflect.Method;
import java.util.Arrays;public class MyMethodInterceptor<T> implements MethodInterceptor {public T getBind(Class<?> object){Enhancer enhancer = new Enhancer();enhancer.setSuperclass(object);enhancer.setCallback(new MyMethodInterceptor());return (T)enhancer.create();}@Overridepublic Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {System.out.println(method.getName() + "方法的参数是"+ Arrays.toString(objects));Object result = methodProxy.invokeSuper(o,objects);System.out.println(method.getName()+"方法的结果是"+result);return result;}
}
package com.b0032AOP例子_CGLIB动态代理.V1基础例子;public class Client {public static void main(String[] args) {MyMethodInterceptor<Calimpl> myMethodInterceptor = new MyMethodInterceptor();Calimpl calimplProxy = myMethodInterceptor.getBind(Calimpl.class);calimplProxy.add(1,1);calimplProxy.sub(2,2);calimplProxy.mul(3,3);calimplProxy.div(4,4);}
}

四、总结

  • 1.代理模式的思想,通过将行为的抽象在运行时进行动态干预使得复用性、灵活性都做到了极大的提高
  • 2.将单纯的代理模式通过和泛型的结合,使得灵活性再次提升
  • 3.后续还可以通过自定义注解,或者包扫描的方式;进一步优化使用端

五、升华

当你的认知提升一个等级之后,再回头看经历过的知识,将会获得不一样的认识

http://www.yayakq.cn/news/772430/

相关文章:

  • 怎样 建设电子商务网站网站用动态图片做背景怎么写
  • 做暧免费网站wordpress 去掉头部栏目
  • 徐州建设工程交易网站温州网站推广效果好
  • 华夏名网修改网站信息提供网站建设的理由
  • 百度蜘蛛抓取网站安徽网新科技有限公司怎么样
  • 简历网站后怎样才能被谷歌 百度收录吗网站一键收录
  • 深圳网站设计公司哪家专业做网站头片的高清图
  • 网站建设就业方向包车哪个网站做的最好
  • 门户网站建设 总结net网站开发 兼职
  • 网站建设方案备案上海人才市场招聘网
  • 电子商务网站的建设与运营怎么管理wordpress
  • 如何自己做网站腾讯中国十大搜索引擎网站
  • 网站优化软件下载鞍山网站建设公司
  • 石家庄网站建设推广电话北京三里屯
  • 品牌网站建设哪个好做搜狗手机网站快速
  • 菏泽网站建设谁最出名酒店设计公司排名前十强
  • 中山网站搜索排名网站怎么做的精致一点
  • 传媒公司网站模板网站结构形式有哪些
  • 做网站市场价格多少钱SEO如何建设网站
  • 山西城乡与住房建设厅网站注册个人网站域名top
  • php html5企业网站源码微山网站建设
  • 如何建立公司网站模块织梦cms一键更新网站无法使用
  • 扬州网站建设建设网站空间选择
  • 广西城市建设学校学生网站北京网站开发建设
  • 网站更改了资料 百度什么时侯来抓取东方购物网上商城
  • 网站3级营销是怎么做的网上购物的网站开发背景
  • 网站开发团队名字做网站需要具备哪些条件
  • 网站开发课程技术培训网站推广经验杂谈
  • 房产网站开发公司wordpress登录数据库吗
  • 各大房产网站framework7做网站