/*
单例设计模式:本类中只创建一个对象,外部通过方法只调用,改变,这一个对象
*/
单例设计模式:本类中只创建一个对象,外部通过方法只调用,改变,这一个对象
*/
class Single{ //饿汉式
//创建一个本类对象
private static Single s = new Single();
//构造函数私有化,外界不可访问,不可创建对象
private Single(){}
//定义一个方法返回该对象,让其程序可以获取到
public static Single getInstance() //返回值为该类 静态方法不能访问非静态变量
{
return s;
}
}
public class Demo {
public static void main(String[] agrs)
{
Single s=Single.getInstance(); //只创建一个对象,只用一个对象,通过方法形成可控。
} //定义一个这个类的变量 = 对象创建在本类中为私有,外部不可访问,通过类名.getInstance,来访问
}
/*
class Single{ //懒汉式(延迟加载)
private static Single s = null;
private Single(){}
static Single getInstance()
{
if(s==null)
{
s=new Single();
}
return s;
}
//创建一个本类对象
private static Single s = new Single();
//构造函数私有化,外界不可访问,不可创建对象
private Single(){}
//定义一个方法返回该对象,让其程序可以获取到
public static Single getInstance() //返回值为该类 静态方法不能访问非静态变量
{
return s;
}
}
public class Demo {
public static void main(String[] agrs)
{
Single s=Single.getInstance(); //只创建一个对象,只用一个对象,通过方法形成可控。
} //定义一个这个类的变量 = 对象创建在本类中为私有,外部不可访问,通过类名.getInstance,来访问
}
/*
class Single{ //懒汉式(延迟加载)
private static Single s = null;
private Single(){}
static Single getInstance()
{
if(s==null)
{
s=new Single();
}
return s;
}
}
public class Demo{
public static void main(String[] agrs)
{
}
}
public class Demo{
public static void main(String[] agrs)
{
}
}
*/
/*
* 单例设计模式应用
*
*/
class superMan{
private String name;
private static superMan s = new superMan("lalala");
private superMan(String name)
{
this.name=name;
}
public static superMan getInstance()
{
return s;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
}
public class Demo2{
public static void main(String[] agrs)
{
superMan s1 = superMan.getInstance();
System.out.println( s1.getName());
superMan s2 = superMan.getInstance();
s2.setName("hahaha"); //改变里面的变量
System.out.println( s2.getName());
}
}
* 单例设计模式应用
*
*/
class superMan{
private String name;
private static superMan s = new superMan("lalala");
private superMan(String name)
{
this.name=name;
}
public static superMan getInstance()
{
return s;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
}
public class Demo2{
public static void main(String[] agrs)
{
superMan s1 = superMan.getInstance();
System.out.println( s1.getName());
superMan s2 = superMan.getInstance();
s2.setName("hahaha"); //改变里面的变量
System.out.println( s2.getName());
}
}