如果您遵循官方 Model-Glue 文档提供的快速入门指南,请在此处找到:
看起来“模型”是一个执行应用程序操作的类。在这个例子中,他们创建了一个Translator
类,将一个短语翻译成 Pig Latin。从这里很容易推断,程序逻辑也应该是“模型”,比如数据库操作类和HTML助手。
然而,我最近收到了一个关于 MVC 的问题的答案:
使用 MVC,我如何设计视图以使其不需要了解控制器设置的变量?
在其中一个答案中提到,MVC中的“模型”应该是控制器填充数据的对象,然后将其传递给视图,视图将其用作强类型对象来呈现数据. 这意味着,对于上面提供的 Model-Glue 示例,应该有一个转换器控制器、一个转换器视图、一个PigLatinTranslator
类和一个Translation
看起来像这样的模型:
component Translation
{
var TranslatedPhrase = "";
}
该控制器将像这样使用它:
component TranslatorController
{
public function Translate(string phrase)
{
var translator = new PigLatinTranslator();
var translation = new Translation();
translation.TranslatedPhrase = translator.Translate(phrase);
event.setValue("translation", translation);
}
}
视图将呈现如下:
<p>Your translated phrase was: #event.getValue("translation").TranslatedPhrase#</p>
在这种情况下,PigLatinTranslator
它只是一个驻留在某处的类,不能被视为模型、控制器或视图。
我的问题是,ColdFusion Model-Glue 的模型与 MVC 模型不同吗?或者他们提供的快速入门指南是否提供了一个糟糕的 MVC 示例,而我在上面列出的代码是正确的做法?还是我完全偏离了这一切?