浅谈单例模式

来源:互联网 发布:知乎 匿名信 丁香园 编辑:程序博客网 时间:2024/05/22 09:06

    楼主仅仅浅谈一下最基础的单例模式写法,加强理解与记忆,后续会深入了解单例。

    单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案

    加载该类的时候,而且只能产生一个实例对象,所以叫单例模式,他的构造器是私有的,只能通过它的一个静态方法得到实例,而这个静态方法可以去调构造器产生一个实例并返回,即构造方法私有化,获取单例方法静态化(即加上static后变成类方法,否则就是对象方法,需要先获取类的实例才能调用),该类无需静态化,可以通过类名“点”静态方法名获取该类的实例。

    private static Singleton instance=new Singleton();//用private static 修饰,静态成员属于类成员,会在类被加载的时候执行,即类加载后,实例就已经创建,不管用户是否获取,调用。属于饿汉模式。


    private static Singleton2 instance=null;    //懒汉模式,需要调用类的实例的时候再创建

    public static Singleton2 getInstance(){

    if(instance==null){

    instance=new Singleton2();

}

return inatance;

}


饿汉模式:加载类时速度较慢,但运行时获取对象的速度较快,线程安全。

懒汉模式:加载类时速度较快,但运行时获取对象的速度较慢,线程不安全。


0 0
原创粉丝点击