全局變量與單例模式


昨天同事問到:單例模式和全局變量有何區別?

全局變量可以創建多個實例,但單例模式只能創建一個(每次得調用GetInstance()之類的唯一方法得到);

而全局變量的class,你可以在任何包含它的地方實例化對象,A a,A b; and so on;

但對於單例模式,無論在哪:A a = GetInstance(), A b = GetInstance();除此之外,更無他法,因此單例模式自己負責創建唯一實例;你絕不可能創建 A a;因為它的構造函數是private的。另外全局的話,就只有一般性,木有什么變化了;在想要的地方給予一定的參數來得到這個唯一對象,應該才是滿足需要的。

當然全局對象無論用到與否都已經創建了,ok,無可挽回了,stack上;

但單例的話,哪里第一次用,哪里開始創建。

更酷的是這個singleton class可以被繼承,因此可以被擴展,這個代碼我還真木有寫過。


免責聲明!

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



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