常見的幾種設計模式

工廠模式

代替new操做的一種模式,能夠屏蔽掉一些(不適合放在構造函數中的)初始化的細節(如賦值,查詢數據庫等),同時也易於後期代碼的統一維護html

單例模式

適用於在整個jvm中只須要有一個實例的狀況,具體實現方式詳見:Singleton Design Pattern in Javajava

適配器模式

對一個接口或多個接口進行從新包裝,使其可以在不在原接口代碼基礎上修改的狀況下適應客戶端的需求。通常使用的情形是舊的接口或現有的由於各類緣由沒法更改的接口不能知足現有的需求的狀況。代碼示例:Adapter in Java: Before and afterandroid

Builder模式

主要針對具備參數比較多的構造函數的類或者具備比較多的要初始化的屬性的類,使用build模式可使代碼更加清晰,示例代碼:android中的AlertDialog數據庫

代理模式

也能夠稱之爲包裝模式(wrap pattern),常見的應用場景以下:app

  • Virtual Proxies 延遲對象的實例化,在真正使用到對象時(調用對象的某個方法等),才實例化對象。主要針對比較消耗資源的對象,如高分辨率的圖像。
  • Remote Proxies 經過這種方式來調用遠程方法,android中調用系統服務方法便用到了這種模式
  • Protection Proxies 真正的對象因爲權限問題沒法被直接調用時
  • Smart References ? providing a sophisticated access to certain objects such as tracking the number of references to an object and denying access if a certain number is reached, as well as loading an object from database into memory on demand.

觀察者模式

當對象之間存在一對多的關係時,若是一個對象發生改變,其餘對象想要得到通知時,採用這種模式。jvm

參考

Factory Design Pattern in Java
Proxy Pattern函數

相關文章
相關標籤/搜索