課程
/移動開發
/Android
/Android-仿微信語音聊天
什么是單例?
2015-08-22
源自:Android-仿微信語音聊天 4-1
正在回答
直接寫靜態,會打亂系統的封裝性,可以寫成靜態,但是這樣不規范。JAVA語言是面向對象語言,所以,應當適應以面向對象思想解決問題,如果寫成了單例模式不僅有高大上的感覺,還能很好的解決多線程導致的建造不同對象
保證了對象的唯一性
和寫成靜態有什么區別
單例模式
就是全局只能有一個對象實例
比如
public?class?Singleton{ private?static?Singleton?singleton?=?null; private?Singleton(){} public?static?Singleton?getInstance(){ if(singleton?==?null){ singleton?=?new?Singleton(); } return?singleton; } }
你可以看到,Singleton類的構造函數是私有的,所以你無法在外面new出Singleton對象。只能通過靜態方法getInstance獲得。這個靜態方法會返回內部私有的Singleton對象的實例,并且會檢查當前這個實例是否已經創建,創建了就直接返回,沒有創建就創建一個返回。這就保證了,Singleton類的對象實例只能有一個。
當然這是最簡單的寫法,在多線程的情況下是不能正常運行的,需要Synchronized同步
舉報
結合自定義View和API,Dialog管理等實現實現微信語音
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-06-27
直接寫靜態,會打亂系統的封裝性,可以寫成靜態,但是這樣不規范。JAVA語言是面向對象語言,所以,應當適應以面向對象思想解決問題,如果寫成了單例模式不僅有高大上的感覺,還能很好的解決多線程導致的建造不同對象
保證了對象的唯一性
2015-08-23
和寫成靜態有什么區別
2015-08-22
單例模式
就是全局只能有一個對象實例
比如
你可以看到,Singleton類的構造函數是私有的,所以你無法在外面new出Singleton對象。只能通過靜態方法getInstance獲得。這個靜態方法會返回內部私有的Singleton對象的實例,并且會檢查當前這個實例是否已經創建,創建了就直接返回,沒有創建就創建一個返回。這就保證了,Singleton類的對象實例只能有一個。
當然這是最簡單的寫法,在多線程的情況下是不能正常運行的,需要Synchronized同步