單例模式(Singleton)-Coding Snippet
阿新 • • 發佈:2019-02-13
package org.fireoct.utils;
/**
* Created by Pan on 2016/10/6.
*/
public class Singleton {
/**
* @return Singleton(唯一)
* 單例模式
*/
public static Singleton getSingleton() {
return singleton;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this .msg = msg;
}
private static Singleton singleton = new Singleton();
//用於演示,可根據自己需要去掉
private String msg = "default message : singleton.";
private Singleton() {
}
}
package org.fireoct.utils;
/**
* Created by Pan on 2016/10/6.
* 測試單例模式-Singleton
*/
public class SingletonTest {
public static void main(String[] args) {
Singleton sin01 = Singleton.getSingleton();
System.out.println("sin01:"+sin01.getMsg());
Singleton sin02 = Singleton.getSingleton();
System.out.println("sin02:"+sin02.getMsg());
sin02.setMsg("sin02 changed the msg");
System.out.println("sin02:" + sin02.getMsg());
//列印sin01物件的msg屬性值,如果和sin02物件修改了msg屬性值之後的一樣,則表示sin01和sin02為同一個物件,即單例模式生效了。
System.out.println("sin01:"+sin01.getMsg());
//或者採用equals方法比較,這樣更直觀。
System.out.println(sin01.equals(sin02));
}
}