【感想】
今天学习了第一个模式,所以把自己的感想写下来。
单例模式应该是比较简单的,我觉得它就像是C++中对
一个对象的引用(也就算是对象的一个别名),无论你
调用多少次类去声明一个新的对象,如下代码:
(下面的代码是在linux下用vim编辑的,为了简化IDE对
包管理的复杂要求,我把Singleton类写成非public类的
事实上我必须这样做,因为public声明的类要以类名+java
作为文件名)
class Singleton{
String name = null;
private Singleton()
{
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
private static Singleton obj =null;
public static Singleton getInstance()
{
if(obj==null){
obj = new Singleton();
}
return obj;
}
public void printInfo(){
System.out.println("The name is : " +name);
}
}
public class Test{
public static void main(String [] args){
Singleton obj1 = Singleton.getInstance();
obj1.setName("Frank");
obj1.printInfo();
Singleton obj2 = Singleton.getInstance();
obj2.setName("Jack");
obj2.printInfo();
//check obj1 again ..
obj1.printInfo();
}
}
只需要javac编译,用java运行即可,运行结果如下:
The name is : Frank
The name is : Jack
The name is : Jack
我们可以看到,obj1第二次输出的结果与哦不obj2一样的!