/*
设计模式:解决某一类问题最有效的方式
单例设计模式:解决的是一个类只有一个对象的问题
单例设计模式的特点:
1.构造函数私有化
2.在类中创建自身类型的对象
3.通过定义一个public的静态函数返回该对象
*/
单例模式的两种方式:
饿汉式和懒汉式
class Single{
int age;
private static Single s = new Single();
public static Single getInstance(){//该函数只能通过类名调用,所以是static的。
return s;
}
private Single(){}
}
//懒汉式
class Single2
{
private Single2 s =null;
public Single2 getInstance(){
if(s==null)
s= new Single();
return s;
}
}
class Test7
{
public static void main(String[] args)
{
Single s1 = Single.getInstance();
Single s2 = Single.getInstance();
System.out.println(s1==s2);
}
}
这里输出结果是true,可知s1和s2是一个对象。
下面通过一个例子继续说明单例模式。
//工厂加工零件
class Factory
{
private int num=0;
private static Factory factory = new Factory();
private Factory(){}
public static Factory getInstance(){
return factory;
}
public void jiagong(){
System.out.println("这是加工的第"+(++num)+"个零件");
}
}
class Test8
{
public static void main(String[] args)
{
Factory f1 = Factory.getInstance();
f1.jiagong();
f1.jiagong();
f1.jiagong();
Factory f2 = Factory.getInstance();
f2.jiagong();
f2.jiagong();
//System.out.println("Hello World!");
}
}
输出的结果为1 2 3 4 5