码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之-单例模式

时间:2017-06-17 13:11:46      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:stat   null   返回   定义   介绍   简单   static   总结   syn   

1.单例设计模式

一、单例模式的介绍
Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点

1.单例设计模式
所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。具体实现步骤如下:
(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。
(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。
(3) 定义一个静态方法返回该类的实例。

2、有两种形式:懒汉式和饿汉式

饿汉式

public class SingletonTest1 { 

    private SingletonTest1() { 

    }
    private static final SingletonTest1 instance = new SingletonTest1();
    public static SingletonTest1 getInstancei() {
        return instance;
    }
}

懒汉式

public class SingletonTest2 {
    private SingletonTest2() {
    }

    private static SingletonTest2 instance;
    public static SingletonTest2 getInstance() {
        if (instance == null)
            instance = new SingletonTest2();
        return instance;
    }
}

改进的懒汉式

public class SingletonTest4 {
    private static SingletonTest4 instance;
    private SingletonTest4() {
    }
    public static SingletonTest4 getIstance() {
        if (instance == null) {
            synchronized (SingletonTest4.class) {
                if (instance == null) {
                    instance = new SingletonTest4();
                }
            }
         }
         return instance;
      }
}

二、

1、用到单例模式的情况:连接池、读取配置文件的类用单例

2、

总结:懒汉式线程不安全,但可以通过方法内部加锁解决
饿汉式线程安全,可能创建一些用不到的类对象,浪费内存

 

设计模式之-单例模式

标签:stat   null   返回   定义   介绍   简单   static   总结   syn   

原文地址:http://www.cnblogs.com/pingfengtingyu/p/7039831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!