Markdown版本筆記 | 我的GitHub首頁 | 我的部落格 | 我的微信 | 我的郵箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | bqt20094 | [email protected] |
目錄
---------- 建立型模式 - 6個 ----------
- 單例模式
- 建造者模式
- 原型模式
- 工廠模式3個
---------- 行為型模式 - 11個 ----------
- 政策模式
- 觀察者模式
- 模闆方法模式
- 責任鍊模式
- 備忘錄模式
- 指令模式
解釋器模式
疊代器模式
狀态模式
中介者模式
通路者模式
---------- 結構型模式 - 7個 ----------
- 裝飾器模式
- 組合模式
- 代理模式
- 擴充卡模式
- 門面模式
- 亨元模式
橋接模式
值得收藏的一些文章
- 一篇超實用部落格:Android開發中常見的設計模式
- 四月葡萄的系列文章
- xxq2dream的系列文章
- Android設計模式之23種設計模式一覽
- Android設計模式簡單了解
- android源碼中的設計模式
懶漢式、餓漢式、靜态内部類、雙重鎖檢查、枚舉
最明顯的标志就是使用Build類
AlterDialog、Notification
各大開源架構廣泛使用 Gson、Okhttp
更快的擷取到一個相同屬性的對象
Intent、OkHttpClient
簡單工廠(靜态工廠)、工廠方法、抽象工廠
BitmapFactory、MediaPlayerFactory、Executors線程池工廠類
封裝算法
出行政策:公共汽車、的士、自駕政策下的費用、時間計算等
插值器、估值器、緩存政策,增删改查政策
監聽器、點選事件、滾動事件
rxjava、eventbus、廣播
架構元件Livedata
定義算法的骨架、結構、流程,細節由子類實作
Activity生命周期
BaseFragment裡面定義的getLayout、initView、懶加載onLazyLoad
需要指定處理鍊,屏蔽了請求的處理過程,用戶端不需要知道請求會被哪些對象處理
事件分發機制、有序廣播、審批流程
ClassLoader的雙親委托模型
捕獲一個對象的内部狀态,并在該對象之外儲存,以便需要時恢複到原先儲存的狀态
Activity的onSaveInstanceState,儲存Bundle類型的savedInstanceState,當Activity重建時可以恢複狀态
将來自用戶端的請求封裝為一個獨立的對象,将行為請求者與行為實作者解耦,可以實作對請求進行排隊、撤消、記錄請求日志等
Handler機制,Runnable、Callable等接口的設計
廣播、eventbus
正規表達式Pattern
時間格式化Format、Html格式化、Integer.parseInt解析、SQL解析
解釋加減乘除、或與非
把對容器中包含對象的通路委讓給外部類,使用Iterator按順序進行周遊通路
比如至少提供hasNext()和next()方法
所有的集合都有 Iterator iterator() 方法
根據内部的狀态動态的選擇行為;狀态改變的時候會改變其行為;狀态改變的時候其行為也随之改變
把所研究的對象的行為包裝在不同的狀态對象裡
登入狀态、未登入狀态下使用者的行為
房屋中介
将網狀結構轉化成星型結構,可以避免同僚類之間的過度耦合
同僚對象隻知道中介者而不知道其他同僚對象,同僚類之間必須通過中介者才能進行消息傳遞
相對比較複雜的一個,項目中可能見得非常少。
把資料結構和作用于結構上的操作解耦合,适用于資料結構穩定、算法易變的系統
案例:上司(CEO、CTO、Leader)對員工(程式員、産品、測試)進行考核
擴充功能,相比于繼承基類來擴充功能,使用裝飾器模式更加的靈活
解決類膨脹、類爆炸、繼承體系臃腫的問題
Context和它的包裝類ContextWrapper(其實并沒有增強功能)
IO流中的BufferReader
View和ViewGroup的組合、檔案結構File
集合List的add和addAll
樹、遞歸、葉子結點
AIDL、Binder
靜态代理、動态代理
Proxy、Cglib
ActivityManagerProxy代理ActivityManagerService
listview、recycleview、ViewPage
流類型轉換InputStreamReader、OutputStreamWriter
集合和數組類型轉換 Arrays.asList()
醫院的接待、功能的封裝(工具類)
Context與ContextImpl
String常量池、Integer、Message常量池
享元對象能做到共享的關鍵是區分内部狀态和外部狀态
一般需要用到單例模式、工廠模式、HashMap
降低記憶體中對象的數量,節省記憶體,但使系統将變得複雜,且在讀取外部狀态時耗時增加
車的輪胎,人的衣服
業務抽象角色引用業務實作角色,業務抽象角色的部分實作是由業務實作角色完成的
将一個系統的抽象部分和實作部分分離,使它們都可以獨立地進行變化
Window 與 WindowManager、應用層與Native層之間的互動
2019-4-1
本文來自部落格園,作者:白乾濤,轉載請注明原文連結:https://www.cnblogs.com/baiqiantao/p/10660659.html