這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何使用TouchGFX的MVP架構(gòu)來(lái)實(shí)現(xiàn)GUI和硬件的雙向交互,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
蓋州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
MVP的全稱為Model-View-Presenter,Model提供數(shù)據(jù),View負(fù)責(zé)顯示,Controller/Presenter負(fù)責(zé)邏輯的處理。MVP與MVC有著一個(gè)重大的區(qū)別:在MVP中View并不直接使用Model,它們之間的通信是通過(guò)Presenter (MVC中的Controller)來(lái)進(jìn)行的,所有的交互都發(fā)生在Presenter內(nèi)部。
用一句話來(lái)概括MVP:所有數(shù)據(jù)僅能保存在稱為 Model 的類對(duì)象(簡(jiǎn)單說(shuō)就是一種文件)中,Presenter是視圖(View)與Model之間的紐帶,View只能通過(guò)Presenter來(lái)讀取數(shù)據(jù)。
MVP優(yōu)點(diǎn):
模型與視圖完全分離,我們可以修改視圖而不影響模型;
可以更高效地使用模型,因?yàn)樗械慕换ザ及l(fā)生在一個(gè)地方——Presenter內(nèi)部;
我們可以將一個(gè)Presenter用于多個(gè)視圖,而不需要改變Presenter的邏輯。這個(gè)特性非常的有用,因?yàn)橐晥D的變化事件總是比模型的變化頻繁;
如果我們把邏輯放在Presenter中,那么我們就可以脫離用戶接口來(lái)測(cè)試這些邏輯(單元測(cè)試)
Screen概念
在TouchGFX應(yīng)用程序中,開(kāi)發(fā)者可以根據(jù)項(xiàng)目需要?jiǎng)?chuàng)建任意數(shù)量的Screen。這里的Screen是指UI元素及其相關(guān)的業(yè)務(wù)邏輯。一個(gè)Screen通常包括兩個(gè)內(nèi)容:一個(gè)View,涵蓋該Screen上顯示的所有空間;一個(gè)Presenter,涵蓋該Screen上所有的業(yè)務(wù)邏輯。
TouchGFX有自己的內(nèi)存分配方案,它僅分配給最大的View和最大的Presenter,分配的RAM可以在應(yīng)用程序的所有Screen上重用。
Model
Model類是一個(gè)單例,始終處于活動(dòng)狀態(tài),并具有兩個(gè)目的:
存儲(chǔ)UI的狀態(tài)信息。切換Screen時(shí),View和Presenter被釋放,因此它們不能用于存儲(chǔ)應(yīng)在Screen切換期間保留的信息。所有,需要Model來(lái)存儲(chǔ)UI的狀態(tài)信息。
充當(dāng)與后端系統(tǒng)的接口,在當(dāng)前活動(dòng)Screen之間來(lái)回傳遞事件。
Model類有一個(gè)自動(dòng)設(shè)置指向當(dāng)前活動(dòng)Presenter的指針。當(dāng)Model中發(fā)生更改時(shí),會(huì)將更改通知給當(dāng)前活動(dòng)的Presenter。這是通過(guò)應(yīng)用程序的Model Listener接口中的方法實(shí)現(xiàn)的。
View
View類(或者更具體地說(shuō),是從TouchGFX View類派生的用戶定義類)包含在當(dāng)前Screen顯示的所有控件。他還包含一個(gè)setScreen和一個(gè)tearDownScreen函數(shù),當(dāng)進(jìn)入、退出當(dāng)前Screen時(shí),該函數(shù)會(huì)自動(dòng)調(diào)用。通常,可以在setupScreen函數(shù)中設(shè)置控件。
View還包含了一個(gè)可以指向關(guān)聯(lián)的Presenter的指針。該指針由框架自動(dòng)設(shè)置。使用此指針,你可以將UI事件傳遞給Presenter。
Presenter
Presenter類(也是從TouchGFX Presenter類派生的用戶定義類)負(fù)責(zé)當(dāng)前活動(dòng)Screen的業(yè)務(wù)邏輯。它將接收來(lái)自Model的“后端”事件,以及來(lái)自View的UI事件,并決定采取哪種操作。
小結(jié)
在MVP架構(gòu)中,所有數(shù)據(jù)只能保持在Model的類對(duì)象中,Presenter是View與Model之間的紐帶,View只能通過(guò)Presenter來(lái)讀取數(shù)據(jù),而不能直接讀取Model中的數(shù)據(jù)。
Model-View-Presenter 軟件架構(gòu):
使用TouchGFXDesigner設(shè)計(jì)界面,添加toggleButton按鈕
使用TouchGFXDesigner制作cpu實(shí)用率的自定義控件,然后將這個(gè)控件添加到需要的界面
上述就是小編為大家分享的如何使用TouchGFX的MVP架構(gòu)來(lái)實(shí)現(xiàn)GUI和硬件的雙向交互了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。