2009-07-26 61 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