JAVA设计模式之单件模式
来源:互联网 发布:mac怎么启用flash 编辑:程序博客网 时间:2024/06/05 17:20
单例模式的定义是:单例模式确保某个类只有一个实例,而且自行实例化,并且向整个系统提供该实例(全局只有一个访问点),这个类就是单例类。
由定义我们知道单例模式的特点:
1>单例类只能有一个实例。
2>单例类必须自己创建自己的唯一实例。
3>单例类必须给所有其他对象提供这一实例。
那么我们就会知道单例类中的工厂方法是静态方法,
public class Single{
private static Single singlee=new Single();
private Single(){}
public static Single getSinglee(){ //全局入口
return singlee;
}
}
public class Single{
private static Single singlee=null;
private Single(){}
public static Single getSinglee(){ //全局入口
if(singlee==null){
singlee=new Single();
}
return singlee;
}
}
我写了两个方法大家可以从中看出来这两个方法的不同吗,对的实例化的对象的地方不一样,这就是我们说的饿汉模式和懒汉模式第一个为饿汉模式第二个为懒汉模式,一个是在调用时就已经创建好实例了但是会浪费一部分空间,而另外一个正好相反在定义时没有实例化但是在使用的时候才会实例化崔然节省了空间但是浪费了判断的时间所以懒汉模式是以空间换时间的模式,饿汉模式是以时间按换空间的模式。
双重检查加锁
“双重检查加锁”机制的实现会使用关键字volatile,它的意思是:被volatile修饰的变量的值,将不会被本地线程缓存,所有对该变量的读写都是直接操作共享内存,从而确保多个线程能正确的处理该变量。
public volatile class Single{
private static Single singlee=null;
private Single(){}
public static Single getSinglee(){ //全局入口
if(singlee==null){
singlee=new Single();
}
return singlee;
}
}
我们使用单例模式的时候最重要的是要看看他是否是唯一的!- JAVA设计模式之单件模式
- 设计模式之单件
- java设计模式之单件模式Singleton
- C# 设计模式之单件模式
- c# 设计模式之单件模式
- 浅析设计模式之单件模式
- 设计模式 之 单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式之Singleton(单件模式)
- 设计模式之---单件模式
- c++ 设计模式之单件模式
- 设计模式之单件模式 singleton
- 设计模式之单件模式
- 设计模式之单件模式
- 设计模式 之 单件模式
- 设计模式之单件模式
- 设计模式之单件模式
- ocp-36
- hdu 3336 Count the string(★)
- poj 1952 最长递减子序列+求个数
- 获取当前jvm下的所有线程
- 读懂diff
- JAVA设计模式之单件模式
- hdoj 2855 Fibonacci Check-up 【打表找规律 + 矩阵快速幂】
- Word Search II
- jasperReport生成html图片显示问题
- 把不是镂空图的图片 转化成 镂空图
- ios申请真机调试( xcode 5)详细解析
- iOS 远程推送
- sublime text 3创建新文件插件-AdvanceNewFile
- (九) HTTP/2的错误码定义