单例模式

来源:互联网 发布:想开淘宝女装店 编辑:程序博客网 时间:2024/05/17 21:48
 单例模式 :保证一个类仅用一个实例,并提供一个访问它的全局访问点。

 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。

 一个最好的方法就是,让类自身负责保存它的唯一实例,
 这个类可以保护没有其他实例可以被创建,并且它可以提供一个访问方法该实例的方法。
 
-------饥汉模式
public class Singleton {
//自身定义了一个实例负责保存
private static Singleton instance;
//定义一个私有的构造方法,堵死了外界利用new创建此类的实例的可能
private Singleton(){}
//提供了一个访问它的全局访问点,要想实例化该类就必须调用该方法
public static Singleton getInstance(){
if(instance==null){
instance = new Singleton();
}
return instance;
}
}


-------饱汉模式
public class Singleton {
private Singleton(){};
// 实例化放在静态代码块里可以提高程序的执行效率,但是也可能更占内存
private final static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}


------------------------
客户端调用代码:
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();

if(s1 == s2){
System.out.println("两个对象是相同的实例");
}else {
System.out.println("不同实例");
}
}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米4s屏幕乱跳怎么办 小米4s手机后壳碎了怎么办 小米5spius开不了机怎么办 小米5s无限重启怎么办 小米5s外屏坏了怎么办 小米5s内屏碎了怎么办 小米4充电没反应怎么办 小米5手机变卡了怎么办 小米5变卡了怎么办 小米手机充电无反应怎么办 小米6相机卡顿怎么办 华为手机玩游戏发热怎么办 华为手机变慢了怎么办 华为p10手机变慢怎么办 华为手机账户密码忘记了怎么办 QQ浏览器无法加载插件怎么办 电脑开了机黑屏怎么办 扫描仪打不开运单扫描怎么办 打印机不支持64位系统怎么办 xp系统dnf闪退怎么办 w10电脑所有程序都打不开怎么办 安卓手机太卡怎么办 系统装到f盘了怎么办 虚拟机占c盘内存怎么办 外机连无线虚拟机显示受限怎么办 使用msdn下载解压后怎么办 路由80端口被占用怎么办 c盘拒绝粘贴文件怎么办 oracle数据库密码忘了怎么办 电脑开机时不显示用户名怎么办? xp系统忘记开机密码怎么办 电脑开机密码忘了怎么办 c盘满了怎么办win10 win10电脑开机密码忘了怎么办 win10的开机密码忘了怎么办 u盘中了exe病毒怎么办 眼睛长个麦粒豆怎么办 苹果手机sdk授权失败怎么办 小米5王者荣耀卡怎么办 华为p9手机电池不耐用怎么办 华为g9青春版耗电快怎么办