【问题标题】:MVC vs HMVC for web application development用于 Web 应用程序开发的 MVC 与 HMVC
【发布时间】:2011-07-24 04:25:27
【问题描述】:

我正在使用 MVC 模式进行 Web 开发。我使用 codeIgniter 框架。我发现 http://fuelphp.com/http://kohanaframework.org/ ,他们正在使用 HMVC。仍然不清楚 HMVC 以及为什么我们应该使用 HMVC 而不是 MVC ?阅读 HMVC 模式后我很困惑,它与 MVC 并没有太大的不同。您能解释一下为什么我们应该使用 HMVC 进行 Web 应用程序开发吗?

【问题讨论】:

    标签: model-view-controller design-patterns hmvc


    【解决方案1】:

    HMVC 可以做任何 MVC 可以做的事情,甚至更多

    在 MVC 中您将或曾经遇到过的一件事是您无法从另一个控制器调用控制器(除非您使用自定义库或助手来执行此操作)

    在 HMVC(分层模型视图控制器)中,您可以做到这一点,我将在这里总结所有品质:

    • 在其他项目中重复使用您的代码
    • 简化项目维护
    • 扩展您的项目
    • 组织代码
    • 模块化结构

    在尝试了 HMVC 之后,你将永远不会回到 MVC 这是一张更清晰的图片

    对于 CodeIgniter,使用“模块化扩展 - HMVC”

    Modular Extensions 使 CodeIgniter PHP 框架模块化。模块是一组独立的组件, 通常是模型、控制器和视图,排列在一个应用程序模块子目录中,可以拖放到其他 CodeIgniter 应用程序中。

    模块控制器可以用作普通控制器或 HMVC 控制器,它们可以用作小部件来帮助您构建视图部分。

    如果你想使用带有 HMVC 模式的 codeigniter,你可以在这里使用 Modular Extensions - HMVC

    https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

    这里有一些不错的有趣的视频教程,可以让你在 codeigniter 中使用 HMCV

    https://www.youtube.com/watch?v=8fy8E_C5_qQ&list=PLBEpR3pmwCawDZ6FgNYoyvicEz4HrJPec&index=1

    希望有帮助!

    【讨论】:

      【解决方案2】:

      Hierarchical-Model-View-Controller (HMVC) 模式是一种直接的 MVC 模式的扩展,它设法解决了许多 已经提到的可扩展性问题。 HMVC 最初是在一个 2000 年 7 月 JavaWorld 网站上题为 HMVC: The layered pattern for developing strong client tiers 的博客文章。 文章重点介绍了将 HMVC 与图形用户一起使用的好处 接口。有some suggestion,作者在哪里 实际上重新解释了另一种称为 Presentation-Abstraction-Control (PAC) 描述于 1987 年。文章 在 JavaWorld 中提供了 HMVC 如何帮助 使用 GUI 设计桌面应用程序。这个重点 文章是为了演示如何使用 HMVC 创建可扩展的 Web 应用程序。

      HMVC 是传统 MVC 三元组的集合 应用。每个三元组完全独立,可以执行 没有任何其他人的存在。向三合会提出的所有请求必须 使用控制器接口,从不加载模型或库 在他们自己的领域之外。三合会的物理位置 托管环境并不重要,只要它可以从 系统的所有其他部分。 HMVC 的显着特点 鼓励重用现有代码,简化不同的测试 系统的一部分,并确保应用程序很容易 增强或扩展。

      来自Scaling Web Applications with HMVC 山姆·德·弗雷西内(Sam de Freyssinet)

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-02
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      相关资源
      最近更新 更多