Android幾種重要的設計模式,你知道的有哪些(詳細介紹)

設計模式有哪些?(一張圖就可以了)
在這裏插入圖片描述

.

項目中常用的設計模式

(1)、模板方法模式

定義一個操作中的算法的骨架,而將一些步驟延遲到子類中,如jdbcTemplate

(2)、代理模式

spring的Proxy模式在AOP中有體現

(3)、觀察者模式

定義對象的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新

(4)、適配器模式

MethodBeforeAdviceAdapter類。

(5)、策略模式

使用了java的繼承和多態

(6)、單例模式

解決了一個全局使用的類頻繁的創建與銷燬。

(7)、工廠模式

分爲三種:簡單工廠,工廠方法,抽象工廠。

手寫生產者/消費者模式

生產者消費者問題是線程模型中的經典問題:生產者和消費者在同一時間段內共用同一存儲空間,生產者向空間裏生產數據,而消費者取走數據。

實現生產者消費者模式有三點:

(1)、一般使用隊列作爲緩衝區,給生產者和消費者解耦,平衡了生產者和消費者的處理能力。

(2)、構建生產者,隊列滿使得生產者線程阻塞。

(3)、構建消費者,隊列空使得消費者線程阻塞。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
BlockingQueue是一個阻塞隊列,它的存取可以保證只有一個線程在進行,所以根據邏輯,生產者在內存滿的時候進行等待,並喚醒消費者隊列,反過來消費者在飢餓狀態下,等待並喚醒生產者生產。

寫出觀察者模式的代碼

爲了幫助開發者瞭解,這裏的觀察者代碼用了中文“新聞接受者”,被觀察者用了“新聞發佈者”,實際上在項目中是不能使用中文定義類名的。
在這裏插入圖片描述
在這裏插入圖片描述
從上邊的例子可以看出,定義了四個訂閱者,一個發佈者,當發佈者更新一個消息時,四個訂閱者都收到消息,根據發佈者更新的信息執行對應的更新操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章