Java基础之单例设计模式
程序员文章站
2022-07-14 08:49:57
...
**作用:保证对象唯一
有两种方法
一、饿汉式**
弊端:只要发生类加载,就一定会创建对象,有浪费内存的问题出现
优点:可以保证对象唯一
class Moon{
//①私有化本类所有构造函数
private Moon(){
...
}
//②在本类中创建唯一对象
private static Moon moon = new Moon();
//③提供外界获取唯一对象的方法
public static Moon getMoon(){
return moon;
}
public static void show(){
System.out.println("我是个饿汉式中的show()方法...");
}
}
//测试类
public class TestMoon{
public static void main(String[] args){
Moon m1 = Moon.getMoon();
Moon m2 = Moon.getMoon();
System.out.ptintln(m1==m2);
}
}
二、懒汉式
优点:只有显示的调用获取对象的方法时,才会创建对象,保证内存不会浪费
弊端:在多线程情况下,可能不能保证对象唯一(线程安全问题)
class Moon{
//私有化本类所有构造函数
private Moon(){
...
}
//在本类创建唯一对象
private static Moon moon = null;
//在本类提供外界唯一访问方式
public static Moon getMoon(){
if(moon==null){
moon = new Moon();
}
return moon;
}
public static void show(){
System.out.println("我是个懒汉式中的show()方法...");
}
}
class TestMoon(){
public static void main(String[] args){
Moon m1 = Moon.getMoon();
Moon m2 = Moon.getMoon();
System.out.println(m1 == m2);
}
}
上一篇: wpf Datagrid 设置行背景色
下一篇: layui表格自定义分页