请选择 进入手机版 | 继续访问电脑版

万邦! 学习论坛

 找回密码
 立即注册
搜索
查看: 102|回复: 1

设计模式-单例模式

[复制链接]

4

主题

4

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2017-8-11 15:17:40 | 显示全部楼层 |阅读模式
单例模式是类在运行程序中只产生一个对象,类外不能通过new创建对象。单例对于创建和销毁对象需要很大资源的类来说比较合适,在spring中,spring管理的bean模式就是单例模式,下面来看两个简单的单例模式,一个是饿汉模式,一个是懒汉模式。
        饿汉模式:
[java] view plain copy print?
package com.jack.singleton;  
  
/**
* Created by jack on 2017/8/1.
* 单例模式,饿汉模式
*/  
public class SingletonA {  
    /**
     * 创建单例对象
     */  
    private static SingletonA singletonA = new SingletonA();  
  
    /**
     * 构造函数私有化,不能在类外面创建对象
     */  
    private SingletonA() {  
    }  
  
    /**
     * 获取单例对象
     * @return
     */  
    public static SingletonA getSingletonA(){  
        return singletonA;  
    }  
}  


  懒汉模式代码如下:
[java] view plain copy print?
package com.jack.singleton;  
  
/**
* Created by jack on 2017/8/1.
* 单例,懒汉模式
*/  
public class SingletonB {  
    private static SingletonB singletonB = null;  
  
    private SingletonB() {  
    }  
  
    public static SingletonB getSingletonB() {  
        if (singletonB == null) {  
            synchronized (SingletonB.class) {  
                if (singletonB == null) {  
                    singletonB = new SingletonB();  
                }  
            }  
        }  
        return singletonB;  
    }  
}  


    单例模式主要注意几点:
    1,构造函数私有化
    2,提供静态方法供外部获取单例对象
    3,考虑多线程环境,单例是否安全

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2017-8-29 11:10:42 | 显示全部楼层
路过。。。
http://www.tintworxjersey.com/
http://www.tkshome-improvements.com/
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|万邦易嵌学习论坛. ( 京ICP备17017219号 )

GMT+8, 2018-10-15 18:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表