通俗易懂系列之Android中的MVP設計模式

2021-08-20 19:17:24 字數 1276 閱讀 7071

說起mvp設計模式,做開發的可能都不會陌生,多少都會有點自己對它的理解。那麼本篇部落格就記錄一下我對它的理解。

其實,從一開始我有點不理解為什麼要有設計模式這種東西和為什麼要去用它。如果說為什麼要有設計模式,這個很好解決,設計模式可以讓我們的軟體更容易維護擴充套件,使**之間的關係變得更加清晰。那麼為什麼要用它呢?本來乙個activity就可以解決的問題,竟然要額外寫那麼多介面和類,mvp三者之間這個持有那個,那個呼叫這個,天哪,怎麼感覺比原來麻煩多了呢。我相信大部分初次接觸mvp的人都有過這種想法。本次,我就詳細說說mvp到底是啥,怎麼理解它,用它能為我們的專案帶來怎樣的實際好處。

mvp是啥?

m—>model,model代表模型,可以儲存、請求、運算元據。

v—>view,view代表檢視,負責介面,用於展示資料、繪製ui元素、與使用者進行互動,簡單理解就是activity、fragment。

p—>presenter,presenter翻譯過來是主持人、中間人的意思。不同於mvc設計模式,model和view之間通過presenter進行聯絡溝通。

先放一張mvp三者之間的關係圖:

對mvp有了乙個初步的了解後,可以進一步的去理解它了,設計模式的初衷就是為了降低**的耦合,劃分職責,使得業務和邏輯區分開來,隱藏多餘資料,增強**的靈活性。舉個例子:

把activity看做是一家餐廳,按照普通的開發方式來看,這家餐廳只有乙個人在維持,自己點菜,自己響應自己的點菜需求(資料處理),自己做菜再自己在端給自己(ui展示),要是真有這種餐廳,估計這個人也是個神經病,自己把本屬於不同角色的事都幹了。不過幸好有mvp設計模式,可以讓他做個正常人。

還是把activity看做為一家餐廳,不過這次不再是乙個人了,而是有三個人,他們職責分工很明確,其中有個顧客叫view,有個服務員叫presenter,有個廚師叫model。可以想到,顧客(view)來點菜,告訴服務員(presenter)要哪些菜,點完菜後服務員(presenter)通知大廚(model)來單了快去做菜,等大廚(model)做好菜了,又通知服務員(presenter)說菜做好了,於是服務員趕緊把大廚做好的菜端給顧客(view)。這就是乙個典型的mvp模式流程,也更接近現實生活中的場景。這樣能理解mvp模式是怎麼回事了吧,它讓餐廳的運營正常了起來,餐廳裡的人各司其職,井然有序,放在**裡也是一樣。

使用了mvp模式的邏輯是這樣的

通俗易懂之Ajax

在網頁載入的時候,載入的都是靜態的資源,你寫的每一句話,每乙個結構都是固定的,比如在哪個區域顯示哪張,頁面渲染之後都無法在改變,想要改變就只有改 然後在重新整理頁面。而ajax可以讓我們在 執行的時候,去請求其他地方的資源或者介面,然後把請求來的資料,根據我們寫好的方法渲染到頁面上,多次進行ajax...

小白系列之通俗易懂的Hadoop

由hdfs mapreduce yarn三部分分開訴說。只用簡單的話來介紹基本原理,涉及不深,如有錯誤請多多指點。hadoop是基於google的集群系統理論來進行的開源實現 google的集群系統 gfs mapreduce bigtable hadoop的集群系統 hdfs mapreduce ...

網路基礎好文(通俗易懂系列)

通俗易懂,鏈結 1.cpu是什麼 cpu跑的快 cpu 記憶體 硬碟 速度 cpu沒記性 硬碟 記憶體 cpu 容量 記憶 cpu的小弟 暫存器和程式計數器 cpu工作 讀取記憶體和快取裡的程式 暫存器以迅雷般的速度運輸資料,程式計數器會記錄每一條指令,然後一條一條發給cpu執行。cpu的唯一的記憶...