Android原始碼中的設計模式1 單例模

2021-07-24 16:45:53 字數 928 閱讀 3140

1、單例模式

實現方式簡單,應用也最為廣泛的一種設計模式。

解決的問題:保證乙個類在記憶體中的物件唯一性。

比如:多程式讀取乙個配置檔案時,建議配置檔案封裝成物件。會方便操作其中資料,又要保證多個程式讀到的是同乙個配置檔案物件,就需要該配置檔案物件在記憶體中是唯一的。像資料庫操作等,jdbc。

那麼,如何使得物件唯一?

1、私有化構造方法

2、本類自己例項化。

3、對外部提供乙個public方法,來獲取本類中例項的物件。

單例模式有很多種寫法:

a、餓漢式

class single()

private static single s = new single();

public single getinstance()

b、 延遲載入

class single()

private static single s = null;

public single getinstance()

說了這麼多,那麼在android原始碼中到底有哪些實現呢?

* contenttext

在獲得系統級服務時,像layoutinflater、windowsmanagerservice、activitymanagerservice等

優點:(1)由於單例模式在記憶體中只有乙個例項,減少了記憶體開支,特別是乙個物件需要頻繁的建立、銷毀時,而且建立或銷毀時效能又無法優化,單例模式的優勢就非常明顯。

(2)單例模式可以避免對資源的多重占用,例如乙個檔案操作,由於只有乙個例項存在記憶體中,避免對同一資源檔案的同時操作。

(3)單例模式可以在系統設定全域性的訪問點,優化和共享資源訪問,例如,可以設計乙個單例類,負責所有資料表的對映處理。

缺點:

Android原始碼設計模式分析專案

該系列文章已經根據技術發展 實戰需求以及讀者您的反饋重寫所有章節,並且加入更加深入的核心機制分析以及模式在android開發中的實戰,以便幫助大家更系統的學習。書籍已經出版,購買位址在為 android原始碼設計模式解析與實戰 另外,我們的聯絡郵箱為 coder.h gmail.com,謝謝。設計模...

原始碼分析設計模式 12 JDBC中的橋接模式

將實現與抽象放在兩個不同的層次中,使兩個層次可以獨立改變。橋接模式基於類的最小設計原則,通過使用封裝 聚合 繼承等行為讓不同的類承擔不同的職責。它的主要特點是把抽象與行為實現分離開,從而可以保持各部分的獨立性以及功能擴充套件。其中,abstraction為抽象化角色,定義出該角色的行為,同時儲存乙個...

獲取Android原始碼

git是linux torvalds為了幫助管理linux核心開發而開發的乙個開放原始碼的公布式版本控制軟體。在git版本控制系統中,每乙個工作目錄都包含乙個完整倉庫,它們支援離線工作。android是由kernel dalvik bionic build等多個git專案組成的,所以android專...