代码如下:
package test;
public class SingleObject {
// 创建 SingleObject 的一个对象
private static SingleObject instance = new SingleObject();
// 让构造函数为 private,这样该类就不会被实例化
private SingleObject() {
}
// 获取唯一可用的对象
public static SingleObject getInstance() {
return instance;
}
public void showMessage() {
System.out.println("Hello World!");
}
}
//
package test;
public class SingletonPatternDemo {
public static void main(String[] args) {
// 不合法的构造函数
// 编译时错误:构造函数 SingleObject() 是不可见的
// SingleObject object = new SingleObject();
// 获取唯一可用的对象
SingleObject object = SingleObject.getInstance();
SingleObject m = SingleObject.getInstance();
SingleObject n = SingleObject.getInstance();
// 显示消息
object.showMessage();
System.out.println(object);
System.out.println(m);
System.out.println(n);
}
}
或者:
package test;
public class MySingleton {
private MySingleton() {
}
private static MySingleton instance = new MySingleton();
public void tell() {
System.out.println("Hello world!");
}
public static MySingleton getInstance() {
return instance;
}
public static void main(String[] args) {
MySingleton m = MySingleton.getInstance();
m.tell();
MySingleton n = MySingleton.getInstance();
n.tell();
System.out.println(m);
System.out.println(n);
}
}