
设计模式
源码小哥
这个作者很懒,什么都没留下…
展开
-
Jdk代理和CGLIB代理的区别
1.原理区别 java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。核心是实现InvocationHandler接口,使用invoke()方法进行面向切面的处理,调用相应的通知。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。核心是实现MethodInterceptor接口,使用intercept()方法进行面向切面的处理,调用相应的通知。 如果目标对象实现了接口,默认情况下会采用原创 2020-12-09 12:42:34 · 2858 阅读 · 0 评论 -
单例模式的问题
静态内部类 public class Singleton { private static class SingletonHolder { private static Singleton instance = new Singleton(); } private Singleton() { } public static Singleton getInstance() { return SingletonHol原创 2020-09-29 13:04:01 · 217 阅读 · 0 评论 -
Java代理设计模式-Proxy
代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。 为什么要采用这种间接的形式来调用对象呢?一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。 从UML图中,可以看出代理类与真正实现的类都是继承了抽象的主题类,这样的好处在于代理类可以与实际的类有相同的方法,可以保证客户端使用的透明性。 1.静态代理 第一步:创建 UserService 接口 public interfa原创 2020-08-31 16:28:36 · 177 阅读 · 0 评论