设计模式:解决某一类问题最行之有效的方法
java中23种设计模式
单例设计模式:解决一个类在内存中只存在一个对象
想要保证对象唯一
1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象
2,还为了让其他程序可以访问该类对象,只好定义在本类中,自定义一个对象
3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
这三部怎么用代码体现呢?
1,将构造函数私有化。
2,在类中创建一个本类对象。
3,提供一个方法可以获取到该对象。
先初始化 :饿汉式 先初始化对象。- public class Single {
- private Single() {
-
- }
- private static Single s = new Single();
-
- public static Single getInstance() {
- return s;
- }
- }
-
- class SingleDemo {
- public static void main(String[] args) {
- Single.getInstance();
- }
- }
复制代码- /*
- * 对象是方法被调用时,才初始化,也叫做对象的演示加载。称为懒汉式。
- * 称为:饿汉式
- * Single类金内存 ,对象还没有存在,只有调用了getInstance(),才建立对象
- */
- public class Single {
- private Single() {
-
- }
-
- private static Single s = null;
-
- /**
- * 加同步锁 效率变低
- *
- * @return
- */
- public static synchronized Single getInstance() {
- /*
- * if(s==null){ s=new Single(); } return s;
- */
- // 双重判断,但是代码变多了,饿汉式 是最好用的,而且是没有问题的。
- // 原则,定义单例时候,使用饿汉式
- if (s == null) {
- synchronized (Single.class) {
- if (s == null) {
- s = new Single();
- }
- }
- }
- return s;
- }
- }
-
- class SingleDemo {
- public static void main(String[] args) {
- Single.getInstance();
- }
- }
复制代码 |
|