Java技術_每天掌握一種設計模式(002)_使用場景及簡單例項(建立型:單例模式)
阿新 • • 發佈:2019-01-03
1.模式描述
一個類有且僅有一個例項,並且自行例項化並向整個系統提供。
2.模式作用
保證某個類在系統中只有一個例項物件,對於特殊需求來說非常必要。
限制了例項個數有利於GC的回收。
等等。//TODO
3.適用場景
一個類有且只能有一個例項的時候。
等等。//TODO
例如:網站計數器、windows系統的工作管理員
4.模式要素
該類只能有一個例項。該類提供一個該類的私有靜態物件。
該類自行建立這個例項。該類只提供私有構造方法。
該類自行對外提供這個例項。該類提供公用方法來建立或獲取這個私有靜態物件。
5.類圖
6.模式例項程式碼
單例:
package com.demoFound.singleton; /** * 單例模式 * * @author popkidorc * */ public class MySingleton { // 私有靜態例項 private static MySingleton newInstance = null; // 私有構造方法 private MySingleton() { } // 對外的公用訪問點,用來建立或獲取例項 public static synchronized MySingleton getInstance() { if (newInstance == null) { newInstance = new MySingleton(); } return newInstance; } }
消費者:
/** * 單例模式_消費者類 * * @author popkidorc * */ public class MySingletonMain { public static void main(String[] args) { System.out.println("1." + MySingleton.getInstance()); System.out.println("2." + MySingleton.getInstance()); System.out.println("3." + MySingleton.getInstance());// 均是同一個物件,在同一個記憶體中 } }