随笔分类 -  设计模式

摘要:单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式结构图: 1. 饿汉模式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() 阅读全文
posted @ 2020-08-12 14:14 gaopengpy
摘要:JDK动态代理: 1、只能代理实现了接口的类。 2、没有实现接口的类不能实现JDK的动态代理。 CGLIB动态代理: 1、针对类来实现代理的,但因为采用的是继承,所以不能对final修饰的类进行代理。 2、对指定目标类产生一个子类,通过方法拦截技术拦截所有父类方法的调用。 阅读全文
posted @ 2020-01-27 14:56 gaopengpy
摘要:单例分为懒汉式和饿汉式: 饿汉式:类加载的时候,创建对象。 因此类加载速度慢, 线程相对安全。懒汉式:类加载的时候,不会创建对象,调用时才会创建对象。因此类加载速度快,线程相对不安全,一般要配合synchronized使用。 饿汉式: //饿汉式 public class HungarySingle 阅读全文
posted @ 2019-11-28 17:18 gaopengpy
摘要:JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢,这就需要CGLib了。CGLib采用了非常底层的字节码技术,其原理是通过字节码技术为一个类创建子类,并在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。但因为采用的是继承,所以不能对final修 阅读全文
posted @ 2019-11-22 14:17 gaopengpy
摘要:代理类在程序运行时创建的代理方式被称为动态代理。 JDK动态代理实现原理 动态代理机制 1、通过实现 InvocationHandler 接口创建自己的调用处理器 2、通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类 3、通过反射机制获得动态代理类 阅读全文
posted @ 2019-11-22 12:08 gaopengpy
摘要:代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 静态代理是由程序员创建或特定工具自动生成源代码,在对其编译。在程序员运行之前,代理类.class文件就已经被创建了。动态代理是在程序运行时通过反射机制动态创建的。 静态 阅读全文
posted @ 2019-11-22 11:25 gaopengpy