建设企业网站企业网上银行官网官方,二建证从住房建设厅网站调出流程,网站里面内外链接如何做,北京网站首页排名公司使用动态代理解决网站字符集编码问题#xff1a;#xff08;之前通过拦截器#xff09; 设计模式#xff1a;
在软件开发的过程中#xff0c;遇到相识的问题#xff0c;将问题的解决方式抽象为模型#xff08;套路#xff09;
单例模式#xff08;静态代码只会执行一…使用动态代理解决网站字符集编码问题之前通过拦截器 设计模式
在软件开发的过程中遇到相识的问题将问题的解决方式抽象为模型套路
单例模式静态代码只会执行一次工厂模式动态代理装饰者模式适配器 装饰者模式的介绍
谷歌汽车场景
1. Java设计了汽车开发的约定
interface ICarstartrunstop
class GoogleCar implements ICar
2. 希望在将谷歌car接入生态圈时候增强汽车启动的功能
3.考虑的方向有直接修改GoogleCar源码使用继承
4. 二次开发的时候如果无法获得源码并且无法使用继承final class如果需要增强某个对象的一个方法的时候要考虑装饰者模式。
前提是可以获取到被装饰 的对象GoogleCar实现的所有接口ICar实现思路自定义装饰类实现ICar接口为自定义装饰类传递被装饰的对象即
main函数new的时候是这样的
ICar car new MyCarnew GoogleCar ICar接口对外公开的 谷歌开发的car源码不对外开放 我自己开发的car增加一个有参构造器实现ICar 启动main函数记得构造器的参数要传入GoogleC对象 这个就是所谓的装饰者模式。 装饰者的弊端如果被实现的接口方法太多装饰类中的方法过多冗余
解决方法
动态代理模式代理对象》用于方法增强
原理通过虚拟机在内存中创建类似于MyCar.class文件 要创建class文件告诉虚拟机
1. 被创建的字节码文件应该有多少方法
2. 创建一个代理对象来增强这些方法 1. 字节码加载器JDK有一些程序专业将各种字节码文件加载到内存这类程序简称字节码加载器
2. 如何将字节码文件class文件加载到内存
底层实现过程是利用IO流技术获取文件中的数据加载到内存然后进行判断和检查。
加载器主要有三种引导类加载器BookStrapClassLoader扩展类加载器extensionClassLoaderext
应用类加载器APPClassLoader自定义的类