学习单态模式笔记

package com.donnie;
/*class OpenFile{
	public OpenFile(){
		System.out.println("构造函数");
	}
	
	public void createFile(){
		System.out.println("创建文件");
		}
}


public class Singleton {
	public static void main(String arg[]){
		OpenFile f1=new OpenFile();
		f1.createFile();
		//1000代码以后
		//OpenFile f2=f1; 假如运行很多代码还要记住f1对象,这是一件很麻烦的事,f1一直占着内存。
		OpenFile f2=new OpenFile();
		f2.createFile();
		
		
	}
}
构造函数
创建文件
构造函数
创建文件
结果出现二个构造函数,其实我们虽要一次就好,建太多会出现内存损耗太大
*/
class OpenFile {
	/*public static OpenFile fo=new OpenFile();
	public static OpenFile getInstance(){
		return fo;
	}*/
	
	public static OpenFile fo=null;
	public static synchronized OpenFile getInstance(){//如果不加同步,在多线程时会造成线程不安全
		if (fo==null){
			fo=new OpenFile();
		}
		return fo;
	}
		
	
	private OpenFile(){  //定义为private是怕不小心调用构造函数,要保护起来
		System.out.println("构造函数");
	}
	
	public void createFile(){
		System.out.println("创建文件");
		}
	
}
public class Singleton {
	public static void main(String[] args){
	OpenFile f=OpenFile.getInstance();
	f.createFile();
	//10000
	
	OpenFile f2=OpenFile.getInstance();
	f2.createFile();
	}
	
	/*构造函数
	创建文件
	创建文件
	
	*最后只有一次出现构造函数,
	单例模式是一种设计思想
		Singleton模式主要作用是保证在Java应用程序
	中,一个类Class只有一个实例存在。在很多
	作中,比如建立目录数据库连接都需要这样
	单线程操作。
	适合做公共工作
	Singleton模式就为我们提供了这样实现的可能
	使用Singleton的好处还在于可以节省内存,因
	为它限制了实例的个数,有利于Java垃圾回收
	(garbage collection)。
	
注意,有时候看文档的时候,发现有些构造函数是被保护的,或者没有构造函数,
	这样十有八九是构造函数
	 */
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值