为什么MVC中的视图分成视图类和模板(Why split the View in MVC into

2019-08-02 09:00发布

我是比较新的设计模式,但我觉得我已经得到了MVC模式的一个很好的了解,并且这种分离的代码所带来的优势。

然而,这两个时间我已经看到了行动的MVC模式(Magento的和Joomla!),有进一步专业化,具有同时包含一个视图类(Magento的块)的视图和PHP模板文件。 我将不胜感激,如果有人可以解释这种分割的利益。

我也是处于亏损为如何视图类和模板文件之间的分裂我的代码。 有时候我发现自己写的东西似乎是一个多余的视图类(在的Joomla!)它只是访问模型,然后就使得可用于模板的数据。 应该会出现什么样的代码模板,并应出现在视图类的代码是什么?

Answer 1:

看来,MVC风格的设计模式,负责所有的你的UI逻辑。 他们应该从模型层被请求的信息,并根据他们所接收的,选择哪个模板应该用于创建响应。 或者,即使需要任何渲染(视图可以仅仅也只是发出一个HTTP标头)。

可以说,在传统的MVC和Model2的MVC模式,认为只有从模型层读取,但控制器只写它。

如果从模型层收到一些错误状态,认为作为主要布局模板和补充它的模板,这是包含HTML片段的错误消息。 然后,它组装整个事情的节目给用户(其中​​,在网络应用的情况下是浏览器)。

模板,在你的基本的web应用程序,与标签和PHP变量的混合只是简单的文件。



Answer 2:

你可以把view作为what和模板作为how

该视图使用模型准备数据,使这些数据提供给模板。

模板,在通常又被称为(在的Joomla!,至少)在视图的范围。

这似乎有种多余的在第一,但这种方法的功率使用模板覆盖时透露。 然后,视图可以被单独留在家中,只有模板(或子模板,这件事情),被重写。

即使使用相同的主(的Joomla!)模板,你可以指定为参数的不同视图模板 ,如果你需要演示的一些专业化。 这也消除重复的代码

例如,假设您创建了一个新的主模板 。 您可以覆盖一些默认的意见/模板,并留下一些其他不变。 然后,你可以创建一个新的观点 ,说, 博客观点 ,也2模板吧, 光间隔黑暗密集 ,要在2个不同的场景中使用。 这样一来,你只能有一个视图准备所有的what和几个不同的模板,采取的护理how



Answer 3:

在一般情况下,一个“视图”和“模板”之间的分裂是这样,如果你要通过不同的方法[即呈现视图的数据。 HTML,XML,JSON等]那么你就需要不断改写“查看”类,只有建立新的“模板”类别。 如果你想结合AJAX调用到您的前端,或使来自例如像智能手机应用程序等应用程序的调用,这非常有用。



Answer 4:

阅读本http://www.codinghorror.com/blog/2008/05/understanding-model-view-controller.html 。 对我来说,MVC手段注册到通过数组的数组和循环功能,并最终调用主程序的功能。 但对许多人来说,似乎从视图(HTML模板)模型(数据库)和控制器(主应用程序)中分离出来。 但是,这不是我想是特别的程序。 当你开发的Web应用程序自然你都该像后端数据库,浏览器,后端和前端,HTML,CSS,图像文件,视频文件和PHP语言等等。为什么这个投入复杂的单词混淆的研究与开发? 我认为MVC是一般是有用的。 了解它的有用得多的装饰图案。



Answer 5:

说实话...性能最好的选择是在后台创建Web服务,并使用JavaScript库交谈的服务器。 Joomla和其他CMS分布尝试将这些设计模式为MVC的抽象既造成MVC和Web服务/客户端代码的混合体。 这种混合性质允许扩展延伸到JavaScript的景观这似乎是幅材前进的方向。



文章来源: Why split the View in MVC into a view class and a template