一、什么是单例模式
单例模式是最简单的设计模式之一,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,并提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
-
注意:
- 单例模式只有一个实例;
- 单例类必须自己创建自己的唯一实例;
- 单例类必须给所有其他对象提供这一实例;
- 单例模式在多线程中需要小心使用,否则可能创建多个实例,违反单例唯一实例的原则;
-
应用场景:
- 需要频繁实例化然后销毁的对象;
- 创建时耗时过多但又经常用到的对象;
- 一些管理类对象;
二、单例之懒汉式与饿汉式
1、饿汉式
饿汉式单例是在类加载时就生成静态实例
public class HungrySingLeton
{
private static HungrySingLeton instance;
private HungrySingLeton()
{
instance = new HungrySingLeton();
}
public static HungrySingLeton Instace
{
get{return instance;}
}
}
-
优点