構造方法私有化與單例模式


所謂單例模式,即一個類只有一個實例化對象。如果不希望一個類產生很多對象,就要使用單例設計模式。比如:使用打印機時,只需要一個打印機實例對象,多個打印機對象會造成內存浪費;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在內存中實際上都是指向同一個對象的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM