所謂單例模式,即一個類只有一個實例化對象。如果不希望一個類產生很多對象,就要使用單例設計模式。比如:使用打印機時,只需要一個打印機實例對象,多個打印機對象會造成內存浪費;windows任務管理器只能打開一個,多個任務管理器窗口是無意義的;windows回收站也只有一個…
單例模式的核心是構造方法的私有化(即在入口處限制了對象的實例化),之后在類的內部實例化對象,並通過靜態方法返回實例化對象的引用。
具體代碼如下:
1 class Singleton { 2 private static Singleton instance = new Singleton(); // 在內部產生本類的實例化對象 3 4 public static Singleton getInstance() { // 通過靜態方法取得instance對象 5 return instance; 6 } 7 8 private Singleton() { // 將構造方法進行了封裝,私有化 9 } 10 11 public void print() { 12 System.out.println("Hello World!!!"); 13 } 14 } 15 16 public class SingletonDemo { 17 public static void main(String args[]) { 18 Singleton s1 = null; // 聲明對象 19 Singleton s2 = null; // 聲明對象 20 Singleton s3 = null; // 聲明對象 21 s1 = Singleton.getInstance(); // 取得實例化對象 22 s2 = Singleton.getInstance(); // 取得實例化對象 23 s3 = Singleton.getInstance(); // 取得實例化對象 24 s1.print(); // 調用方法 25 s2.print(); // 調用方法 26 s3.print(); // 調用方法 27 } 28 }
輸出結果:
在以上例子中,instance、s1、s2、s3在內存中實際上都是指向同一個對象的