有許多廣泛使用的架構(gòu)模式。然而,其中六種非常常見(jiàn)且關(guān)鍵,這并非偶然。以下是這些模式,為什么你應(yīng)該使用它們,以及何時(shí)使用它們。
這是最早采用并廣泛使用的架構(gòu)模式之一。其主要目標(biāo)是將應(yīng)用程序的數(shù)據(jù)、用戶界面和控制邏輯分離為三個(gè)相互連接的組件。模型管理數(shù)據(jù)和邏輯,視圖顯示信息,控制器連接模型和視圖,處理用戶輸入。使用場(chǎng)景: 適用于具有明確數(shù)據(jù)處理和UI分離的Web應(yīng)用程序。
這種模式從MVC演變而來(lái),旨在通過(guò)將視圖與模型解耦,通過(guò)Presenter充當(dāng)中間人來(lái)解決MVC在事件驅(qū)動(dòng)環(huán)境中的缺點(diǎn)。模型管理數(shù)據(jù),視圖顯示數(shù)據(jù)并將用戶命令發(fā)送給Presenter,而Presenter從模型檢索數(shù)據(jù)并將其呈現(xiàn)給視圖。使用場(chǎng)景: 側(cè)重于測(cè)試和UI邏輯的應(yīng)用程序,如Android應(yīng)用程序。
這是一種采用單向數(shù)據(jù)流的響應(yīng)式架構(gòu),確保在給定狀態(tài)下,UI保持一致。模型表示狀態(tài),視圖反映視圖狀態(tài),而意圖表示更改狀態(tài)的用戶交互。廣泛用于具有狀態(tài)一致性關(guān)注的Reactive應(yīng)用程序或框架,如使用RxJava的應(yīng)用程序。
MVVM出現(xiàn)是為了解決UI開(kāi)發(fā)中的復(fù)雜性,提倡采用一種無(wú)需了解UI組件的ViewModel處理視圖邏輯的方法。在這種情況下,模型管理和顯示數(shù)據(jù),而ViewModel保存和包含與UI相關(guān)的數(shù)據(jù)。這個(gè)模型非常適用于UI豐富的應(yīng)用程序或具有數(shù)據(jù)綁定的平臺(tái),如使用LiveData的WPF或Android。
在MVVM的基礎(chǔ)上引入Coordinator來(lái)處理導(dǎo)航,將其與View和ViewModel解耦。這個(gè)模型非常適用于較大的應(yīng)用程序,特別是在IOS上,復(fù)雜的導(dǎo)航需要與視圖邏輯分離。
這是一種類似于Clean architecture的模塊化架構(gòu)。它強(qiáng)調(diào)可測(cè)試性和單一職責(zé)原則,通過(guò)將應(yīng)用程序邏輯分解為不同的組件。在這個(gè)模型中,視圖顯示參數(shù)發(fā)送的內(nèi)容,互動(dòng)器包含每個(gè)用例的業(yè)務(wù)邏輯。Presenter包含準(zhǔn)備內(nèi)容的視圖邏輯,實(shí)體包含主要模型對(duì)象,路由器包含導(dǎo)航邏輯。這個(gè)模型非常適用于復(fù)雜的應(yīng)用程序,特別是在IOS上,需要模塊化、可測(cè)試性和清晰度。
本文鏈接:http://www.www897cc.com/showinfo-26-57905-0.html六種最關(guān)鍵的架構(gòu)模式
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com