1. 程式人生 > >Android中常用的設計模式

Android中常用的設計模式

  • 觀察者模式
  • 單例模式
  • 介面卡模式(如ArrayAdapter)
  • 代理模式(Proxy)
  • 工廠模式(Factory Pattern)
  • 命令模式
  • Build模式
  • 原型模式
  • 策略模式

下面介紹一些Android開發中常用的幾種設計模式

觀察者模式:

觀察者模式定義了一種一對多的依賴關係,當一個物件的狀態改變時,所有依賴於它的物件都能得到通知並被自動更新。

適用場景:1,天氣預報服務,一旦有天氣資訊更新,它就會及時向你傳送最新的天氣資訊;2,雜誌的訂閱;3,廣播;4,事件匯流排EventBus

單例模式:

確保一個類只有一個例項,而且自行例項化並向整個系統提供這個例項。

單例模式核心只需要new一個例項物件的模式,比如資料庫連線、線上人數等,一些網站上看到的線上人數統計就是通過單例模式實現的,把一個計數器存放在資料或者記憶體中,當有人登陸的時候取出來加一再放回去,有人退出登入的時候減一再放回去,但是當兩個人同時登入的時候,會同時取出計數器,同時加一,同時放回去,這樣的話資料就會錯誤,所以需要一個全域性變數的物件給全部人使用,只需要new出一個例項物件,這就是單例模式的應該,並且單例模式節省資源,因為它控制了例項物件的個數,並有利於GC回收。

 

優點:1,對於那些比較耗記憶體的類,只例項化一次可以大大提高效能,尤其是在移動開發中;2,保持程式執行時,該中始終只有一個例項存在記憶體中

適用場景:對於定義的一個類,在整個應用程式執行期間只有唯一的一個例項物件。如Android中的Application物件

策略模式

就是將幾個類中公共的方法提取到一個新的類中,從而使擴充套件更容易,保證程式碼的可移植性,可維護性強。比如有個需求是寫鴨子物件,鴨子有叫,飛,外形這三種方法,如果每個類都寫這三個方法會出現程式碼的冗餘,這時候可以把鴨子中的叫,飛,外形這三個方法提取出來,放到鴨子父類中,讓每個鴨子都繼承這個鴨父類,重寫這三個方法,這樣封裝的程式碼可移植性強,當用戶提出新的需求比如鴨子會游泳,那麼對於我們來說就非常簡單了,只需要在鴨父類中加一個游泳的方法,讓會游泳的鴨子重寫游泳方法就可以了

工廠模式

簡單的工廠模式主要是統一提供例項物件的引用,通過工廠模式介面獲取例項物件的引用。比如一個登入功能,後端有三個類,controller類,interface類,實現介面的實現類。當客戶端發出一個請求,當請求傳到controller類中時,controller獲取介面的引用物件,而實現介面的實現類中封裝好了登入的業務邏輯程式碼。當你需要加一個註冊需求的時候只需要在介面類中加一個註冊方法實現類中實現方法,controller獲取介面的引用物件即可,不需要改動原來的程式碼,這種做法是可擴充套件性強。