设计模式就是解决某一种问题的一种思想,是一种行之有效的解决方式。
下面要记录的就是设计模式中的单例模式。
解决的问题
任何一种设计模式的出现,都是为了解决某一种问题的。单例设计模式也不例外,它的出现是为了保证一个类的对象在内存中的唯一性。
应用场景
系统/应用只需要一个实例对象,确保对象的唯一性。
用例学习
单例模式最典型的应用场景就是多个对象都要对同一对象的某一个实例进行调用。通常,创建这个对象的类就要被设计成单例类。
代码如下:
/** * @author [email protected] * @date 18-5-7 上午11:08 */ public class Singal { private static Singal singal = new Singal(); private Singal() { } public static Singal getInstance() { return singal; } }
以上就是饿汉式单例模式。单例模式还有另外一种懒汉式单例模式(也可称之为延迟加载方式)。
代码如下:
/** * @author [email protected] * @date 18-5-7 上午11:08 */ public class Singal { private static Singal singal = null; private Singal() { } public static Singal getInstance() { if(singal == null) { synchronized (Singal.class) { if(singal != null) singal = new Singal(); } } return singal; } }
这种方式在对多线程访问的时候,可以通过线程锁来避免创建多个实例。本例使用的是Singal类所属的字节码对象锁,当然也还乐意使用其他锁!都能达到线程同步的要求。
以上就是对单例模式的简单记录!