写在前面
设计模式,其实在一定程度上代表着最优解,最佳实践,由一部分开发人员根据经验总结而出的解决方案,分别针对不同的场景的最优解决方案。
在当前环境下,设计模式也被开发人员极为推崇,并且利用其解决众多的问题,所以,学习设计模式刻不容缓。
下面我们就来看一下“单例模式”。
正文
单例模式是Java设计模式中最基础的几个设计模式之一,属于创建型设计模式,其核心就是提供了创建对象的最佳解决方案。
单例模式还分为饿汉模式和懒汉模式。
使用场景
单例模式一般在只需要一个对象既可以解决的情况下进行使用。
优缺点
单例模式最大的优点就是只有一个对象实例,这大大减少了服务器内存的开销,没有了频繁的创建和销毁操作。
缺点就是与其他类之前没办法存在继承关系等,只关心自身的实现。
代码实现
饿汉模式
public class SingleDemo { private static SingleDemo instance = new SingleDemo(); private SingleDemo (){} public static SingleDemo getInstance() { return instance; } }
懒汉模式
public class SingleDemo { private static SingleDemo instance; private SingleDemo (){} public static SingleDemo getInstance() { if (instance == null) { instance = new SingleDemo(); } return instance; } }
但是这种懒汉模式其实是线程不安全的,需要加上同步锁才行。
public class SingleDemo { private static SingleDemo instance; private SingleDemo (){} public static synchronized SingleDemo getInstance() { if (instance == null) { instance = new SingleDemo(); } return instance; } }