設計模式

面向對象六大原則

  • 單一職責原則:一個類中應該是一組相關性很高的函數、數據的封裝。
  • 開閉原則:對修改關閉,對拓展關閉。
  • 里氏替換原則:所有引用基類的地方必須能透明得使用其子類的對象。即子類就可以替換父類出現。
  • 依賴倒置原則:依賴高層抽象,不能依賴底層實現。
  • 接口隔離原則:將接口拆分成更具體的接口,根據不同需求建立依賴。
  • 迪米特原則:即最小知識原則。一個類應該與和它關系最直接的類建立連接。

設計模式在Android源碼中的實現

  • 單例模式
    最優實現:靜態內部類方式、枚舉方式、容器方式

    源碼:Context.getSystemSerivce()采用了容器方式實現單例模式將service通過鍵值對的方式存在HashMap中。

  • Builder模式

    將一個復雜的對象的構建與表示分離,使得同樣的構建過程可以創建不同的表示。

    源碼:AlertDialog、OkHttp

  • 原型模式

    clone()

源碼:ArrayList

  • 工廠方法模式

源碼:Iterable

  • 抽象工廠

  • 策略模式:

源碼:屬性動畫插值器

  • 狀態模式:

源碼:WiFiSetting

  • 責任鏈模式:

源碼:view事件分發

  • 解釋器模式:

源碼:PackageManagerService(app掃描)

  • 命令模式:

源碼:InputDispatcher事件輸入

  • 觀察者模式:

源碼:notifyDataSetChange、Rxjava

  • 備忘錄模式:

源碼:onSaveInstanceState

  • 迭代器模式:

源碼:List、Map、Curso

  • 模板方法模式:

源碼:AsyncTask

  • 訪問者模式:

源碼:APT(注解)

  • 中介者模式:

源碼:Keyguard鎖屏

  • 代理模式:

源碼:Binder

  • 組合模式:

源碼:View、ViewGroup

  • 適配器模式:

源碼:Adapter

  • 裝飾器模式:

源碼:ContextWrapper

  • 享元模式:

源碼:Message

  • 外觀模式:

源碼:context、ContextImpl

  • 橋接模式:

源碼:WindowManagerService

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容