1. 程式人生 > >單例模式(Singleton)-Coding Snippet

單例模式(Singleton)-Coding Snippet

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)); } }