企業架構之應用控制器

2021-06-26 15:46:04 字數 1016 閱讀 1454

在前端控制器中說到執行命令時,是用命令物件自己呼叫檢視,如果系統的規模較小,可以如此。但這並不是最佳的選擇,最好是盡可能地將命令和檢視分離開來。

應用控制器負責對映請求到命令,並對映命令到檢視。這種分離意味著可以更加容易地改變檢視(即模板)而不用改動核心**。同時,也可以改變應用程式的流程而不需要修改核心部分的**。通過將command分離出來,可以更加容易地把同乙個command用在系統中的不同地方。

應用控制器可以替你完成這個工作,把command解放出來,讓command集中處理自己的工作,包括處理輸入、呼叫應用程式和處理結果等。

其實實現的方法仁者見仁,智者見智,關鍵在於模式中參與者(應用控制器、命令和檢視等)互相通訊的方式,而不是實現的細節,下面簡單介紹一種通過xml配置檔案來實現的方式。

第一步:配置檔案

sqlite://./data/woo.db

main

main

error

listvenues

quickadd

addfriend

//如果操作成功,則前進到下一步seedfeeds

sendfeeds

seedfeeds

listfriend

第二步:解析檔案

第三步:儲存配置資料

上一步解析後的資料利用登錄檔進行儲存

第四步:根據配置資料,完成命令的迭代

通過前端控制器處理請求,根據請求引數查詢第三步儲存配置資料,獲取command,根據status,選擇結束還是forward,結束則獲取view,forward則進行下一步command。

應該發現,要實現乙個完整的應用控制器模式是相當困難的,需要做很多的工作,包括得到和應用元資料來描述命令與請求、命令與命令以及命令與檢視之間的關係。因此,最好只在專案需要時才這樣做。我當在命令類中新增條件語句來載入不同的檢視或者呼叫不同命令時,如果覺得命令與顯示的邏輯不太容易控制,才會相到使用應用控制器。

當然,正我之前所說,應用控制器的實現方式有很多種,而不僅限於上面介紹的那個方法。

企業架構之應用控制器

在前端控制器中說到執行命令時,是用命令物件自己呼叫檢視,如果系統的規模較小,可以如此。但這並不是最佳的選擇,最好是盡可能地將命令和檢視分離開來。一 概念 應用控制器負責對映請求到命令,並對映命令到檢視。這種分離意味著可以更加容易地改變檢視 即模板 而不用改動核心 同時,也可以改變應用程式的流程而不需...

THINKPHP之控制器

如何新增控制器?在lib action中新增乙個控制器 productaction.class.php class productaction extends action 然後通過url訪問 這此要引入乙個非常重要的乙個概念 tp支援四種訪問方式 可以通過url model引數來控制。1.普通模試...

控制器和動作方法之控制器Controller

到達應用程式的每乙個請求都是由控制器處理的。只要不偏離到屬於模型和檢視職責的領域,控制器可以以它認為合適的方式自由地處理請求。在asp.net mvc框架中,控制器是含有請求處理邏輯的.net類。控制器的作用是 1.負責處理輸入請求 2.執行域模型上的操作 3.選擇渲染給使用者的檢視 建立乙個控制器...