设计模式
有梦想的小树
盛年不重来,一日难再晨,及时当勉励,岁月不待人
展开
-
DCL失效分析
JAVA 单例双重检查(double check)为什么不好用在阅读之前,请先了解下线程并发涉及到的三个概念:原子性、可见性、有序性,可以看下这篇文章:http://www.cnblogs.com/dolphin0520/p/3920373.html我假设你已经看过几篇double check的文章,但还是一知半解。我们先看这种双重检查,不加volatilepub...原创 2019-11-21 21:28:20 · 317 阅读 · 0 评论 -
单例模式的破坏与保护
How to prevent Singleton Pattern from Reflection, Serialization and Cloning?1.Reflection2.Serialization3. Cloning创建对象的方法有四种:new 、克隆、序列化、反射。 单例模式就是,某一个类只能有一个实例,实现的核心就是将类的构造函数私有化,只能由该类创建对象...原创 2019-11-21 17:41:26 · 307 阅读 · 0 评论 -
面向对象六大基本原则
1.开闭原则很多教程都把开闭原则作为这六大原则中最基本的原则,也就是说他是各个原则的核心。开闭原则指的是,一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。对于开闭原则,我们在设计软件的时候,首先要搞清楚程序当中什么是未来可能变化的,什么是未来不会变化的。对于可能变化的东西,我们要提前给与可以对应的扩展接口。当然实际开发中,即便是我们认为这些不会变化的地方,未来还是可能变化的,这种变...原创 2019-05-04 21:07:51 · 2727 阅读 · 1 评论 -
单例模式的解释以及多种实现
1.什么是单例模式?2.如果理解单例模式做什么用?优缺点?使用场景?3.饿汉式和懒汉式:4.手撕单例模式1.饿汉 (这其实就是静态工厂方法)2. 线程不安全 + 懒汉3. 单锁线程安全 + 懒汉4. DCL双重检测(会失效版本)5. 正常版的双重检测实现单例(使用了volatile)6. 利用静态内部类实现线程安全的懒汉式单例模式7. 利用枚举实现单例1...原创 2019-05-04 21:57:15 · 394 阅读 · 0 评论