2010-08-08 63 views
1

我有多個Controller對象,它們執行某個腳本然後重定向到特定頁面,或收集一些數據,將它發送到View對象,然後顯示該View 。這是什麼設計模式? (或者,你能爲我的特定問題推薦一個模式嗎?)

代替具有爲每個控制器實例化一個頁面(例如main_menu.phpimage_browser.phpmanage_users.php),我有一個index.php頁,它包含可實例化指定的類的類。調用index.php時,要實例化的類通過URL GET變量指定。管理實例化的類檢查指定的類是否在允許的類名稱數組中,如果是,則實例化類(控制器),如果不是,則實例化MainMenu類。

我是否擁有這個類,它管理合法的類名,一個設計模式?

或者,這不是一種設計模式嗎?

+0

這聽起來很像MVC與一些曲折。代碼來自哪裏? – Iznogood 2010-08-08 16:13:52

+0

這是我的代碼。我試圖清理一個我建造的CMS – 2010-08-08 16:15:23

+1

那麼它可能不是一個已知的模式。什麼地方你根據你一無所知的模式編寫exacly的機會? – Iznogood 2010-08-08 16:18:34

回答

3

聽起來像是FrontController給我:

前端控制器通過引導通過單個處理對象的請求將所有請求處理。該對象可以執行常見的行爲,可以在運行時使用裝飾器進行修改。然後,處理程序將分派到特定於請求的行爲的命令對象。

參見:

+0

我不知道前端控制器,我想我的設置實際上是一個頁面控制器(或混蛋想要),但我不知道頁面控制器,直到你共享前端控制器。感謝您! – 2010-08-08 19:40:19

+0

@letseatfood歡迎您。IMO,您可以同時擁有許多頁面控制器來處理輸入,委派模型和查看渲染調度。作爲這些控制器的中央接入點,並在所有PageController中設置所需的東西。 FrontController是與MVC一起使用的常見模式。 – Gordon 2010-08-09 06:59:27

1

我想說這是帶訪問控制的調度模式。但是,通常情況下,直接在Web應用程序中用戶指定的控制流爲反模式。

+0

請您詳細解釋您的意思用戶指定的流程控制? – 2010-08-08 16:21:36

+1

@letseatfood:如果哪個類實例化是由用戶直接控制的,那麼用戶指定應用程序的控制流程。這是一種簡單的方法來解決安全問題if – Borealid 2010-08-08 16:29:10