
设计模式
文章平均质量分 69
设计模式!!!!!!
Pinker_Q
这个作者很懒,什么都没留下…
展开
-
readResolve()原理
从序列化中恢复一个单例对象会破坏单例模式,解决方法是添加readResolve() : 原理: 反序列化时,首先获取序列化的类 : desc( 可理解为单例类的class类,但它和JVM加载到内存中的单例class类有不同)因为如果desc就是我们的单例class类,那是不允许再实例化的。而desc类却可以实例化。 判断对象是否能实例化。可以则进行实例化,至此单例类进行了第一次实例化,对象名为obj(通过反射,并调用无参或者父类的无参构造函数生成的类) 第一次实例化完成后,通过反射寻找该单例类中的read原创 2021-04-18 12:06:56 · 2590 阅读 · 1 评论 -
单例模式(四种)与其破坏方式(三种)
单例模式 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。 单例模式的类型 单例模式有两种类型: 懒汉式:在真正需要使用对象时才去创建该单例类对象 饿汉式:在类加载时已经创建好该单例对象,等待被程序使用 饿汉式: 线程安全 不能实现延迟加载(浪费空间) public class Singleton { private stat原创 2021-04-13 21:58:59 · 1189 阅读 · 0 评论 -
代理模式(静态代理/动态代理)
文章目录代理模式静态代理动态代理 在了解静态代理和动态代理前,请先了解代理类Proxy–代理类Proxy 代理模式 为其他对象提供一个代理以控制对某个对象的访问。代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。 静态代理 创建一个接口,然后创建被代理类实现该接口并且实现该接口中的抽象方法。之后再创建一个代理类,同时使其也实现这个接口。在代理类中持有一个被原创 2020-10-10 21:12:03 · 226 阅读 · 0 评论