2009-07-26 86 views
1

我(我敢肯定你們中的很多人)對Rails的MVC設計模式以及Django(和其他人)的MTV設計模式非常熟悉。我想知道其他框架用於Web應用程序開發的其他模式。他們的優點/缺點是什麼?框架設計模式

感謝

回答

0

我的用於PHP的小型(60行)MVC引擎,http://code.google.com/p/barebonesmvc-php/,由思科在嵌入式消費設備上成功使用,依賴於「模板方法」模式,其中父類指定算法的步驟,班級負責實施其中的一些步驟。

static function sendResponse(IBareBonesController $controller) { 
     $controller->setMto($controller->applyRequestToModel()); 
     $controller->mto->applyModelToView(); 
} 

在我的引擎的情況下,開發人員需要實現applyRequestToModel。不僅Spring的Web/MVC模塊,還有我的applyModelToView方法,它接受一個map/hash/assoc-array,並使其可用於視圖,除了Spring將MVC的兩個方面以其抽象的名稱(ModelAndView)進行混合,而我的抽象更適合名稱ModelTransferObject(aka $ mto)。春天的

來講,對於模板方法模式GoF的參考,GoF的參閱網頁

-1

MTV只是對什麼通常被稱爲MVC更準確的名稱。所以實際上,Rails和Django使用相同的模式。已經建立了多年,幾乎沒有任何框架可以做不同的事情,除了半對象模式。但是,在網絡世界中還沒有建立halb對象。

「真正的」MVC是一種在古典GUI和JavaScript中發現的模式(如果你只看瀏覽器中發生了什麼)。它根本不適用於WWW,因此必須進行調整。結果往往也被稱爲MVC,而MTV是一個更準確的描述。

+0

MVC「控制反轉」應該是簡單的,沒有必要對監聽,Web服務器就那,並且請求是事件。不需要另一種設計模式。 MVC的Web基本上歸結爲中介模式的具體實例,控制器介於視圖和模型之間。 – 2009-07-26 23:34:08

+0

與MVC相反,Web版本需要在每個操作上使用模板創建GUI。在傳統的GUI中這不是必需的。因此,網絡中存在兩個主要區別,「視圖」及其與其他部分(模型,控制器)的交互概念發生了巨大變化。這就是爲什麼MTV等新名稱是合適的原因。 – vog 2009-07-26 23:41:40