设计模式研究之——单例模式

来源:互联网 发布:中序线索树的递归算法 编辑:程序博客网 时间:2024/04/30 08:19

单例模式:

       顾名思义只有一个实例的模式

创建一个单例的必备条件为

       1、私有的构造方法;2、私有的静态引用变量;3、返回静态引用变量的公开方法

单例模式根据创建实例对象的阶段时间不同将分为两种形式的单例:

一种是饿汉模式

饿汉模式就是这条汉子非常饥饿,只要一开饭就立马要吃饱。即:在单例被加载的时候就创建实例化一个对象交给引用

public class Singleton{private static Singleton instance = new Singleton();//私有的静态引用变量private Singleton(){}//私有构造方法public static Singleton getInstance(){     return instance;}//返回静态引用变量的公开方法
}

另一中是懒汉模式。

懒汉呢就是懒得动弹,只有你踹他一脚他才行动起来干事。即:在调用获取单例对象的时候才实例化引用

public class Singleton{
private static Singleton instance;//私有的静态变量的引用
private Singleton(){}//私有构造方法
public static Singleton getInstance(){
if(instance == null ){
instance = new Singleton();
}
return  instance;
}
 
}

 

为什么程序员都比较青睐单例模式呢:

       a、内存中只存在一个对象,减少了内存的消耗

       b、避免频繁的创建对象销毁对象,提高性能

       c、可以全局访问,避免了对共享资源的多重访问

使用单例的场景有哪些?

       a、需要频繁创建的对象

       b、创建耗时耗资源而且经常使用的对象

       c、数据库持久化的类等

单例注意事项:

       a、只能使用单例类中的公有方法获得单例对象,不能使用反射,否则将会实例化一个新的对象

       b、多线程使用单例共享资源时,要注意线程安全问题。

 


 

 

0 0
原创粉丝点击