大二第二學期周學習進度總結(八)

2022-09-23 01:52:11 字數 1235 閱讀 4675

第一階段的衝刺差不多快結束了,說實話,時間的確是不夠用,自己的能力還是太低,在對**的理解能力上和頂尖的同學還是有不少的差距,學習效率並不是很高,只能用時間補上,還有就是沒有介面的美化,哈哈

沒有一個好的ui可以算是硬傷了,不過我們會在後期加上一個模板,這樣的話應該會解決這個問題,還有就是我們的功能還需要繼續新增,功能還是不算很多,而且需要整合一下**,自己寫的**結構太爛了,需要趕緊整改

貼一個mvp的模式

mvp 全稱:model-view-presenter ;mvp 是從經典的模式mvc演變而來,它們的基本思想有相通的地方:controller/presenter負責邏輯的處理,model提供資料,view負責顯示。

作為一種新的模式,mvp與mvc有著一個重大的區別:在mvp中view並不直接使用model,它們之間的通訊是通過presenter (mvc中的controller)來進行的,所有的互動都發生在presenter內部,而在mvc中view會直接從model中讀取資料而不是通過 controller。

在mvc裡,view是可以直接訪問model的!從而,view裡會包含model資訊,不可避免的還要包括一些業務邏輯。 在mvc模型裡,更關注的model的改變,而同時有多個對model的不同顯示,即view。所以,在mvc模型裡,model不依賴於view,但是view是依賴於model的。不僅如此,因為有一些業務邏輯在view裡實現了,導致要更改view也是比較困難的,至少那些業務邏輯是無法重用的。

雖然 mvc 中的 view 的確“可以”訪問 model,但是我們不建議在 view 中依賴 model,而是要求儘可能把所有業務邏輯都放在 controller 中處理,而 view 只和 controller 互動。  

1、模型與檢視完全分離,我們可以修改檢視而不影響模型

2、可以更高效地使用模型,因為所有的互動都發生在一個地方——presenter內部

3、我們可以將一個presenter用於多個檢視,而不需要改變presenter的邏輯。這個特性非常的有用,因為檢視的變化總是比模型的變化頻繁。

4、如果我們把邏輯放在presenter中,那麼我們就可以脫離使用者介面來測試這些邏輯(單元測試)

由於對檢視的渲染放在了presenter中,所以檢視和presenter的互動會過於頻繁。還有一點需要明白,如果presenter過多地渲染了檢視,往往會使得它與特定的檢視的聯絡過於緊密。一旦檢視需要變更,那麼presenter也需要變更了。比如說,原本用來呈現html的presenter現在也需要用於呈現pdf了,那麼檢視很有可能也需要變更。