`

什么是HMVC

    博客分类:
  • php
阅读更多

HMVC模式即Hierarchical-Model-View-Controller模式,也可以叫做Layered MVC.HMVC模式把客户端应用程序分解为有层次的父子关系的MVC。反复应用这个模式,形成结构化的客户端架构。如图:



一个MVC模块由应用程序的一个模块抽象而成。其中很重要的一个概念就是Parent MVC,它可以对应界面上的实体,也可以是一个抽象的对象。设想有一个Windows Form应用程序,有一个框架(frame),此框架由菜单功能模块、导航栏、状态栏、主工作区等部分组成,对应于HMVC,frame MVC 即Layer1 的parent MVC ;菜单MVC、导航栏MVC、状态栏MVC、主工作区 MVC处于第二层(图中只画了一个)。如果你觉得导航栏或主工作区的功能太复杂,也可以再细分成HMVC中的第三层,依次类推,可以扩展到n层,如果你愿意的话。

HMVC 工作原理:

Controller是功能模块的总控室,它负责和子Controller或父Controller通信,并通知它的View处理改变界面显示、Model处理一些业务逻辑或数据库访问操作。举个例子,假如要实现点击菜单项,刷新主工作区这样的功能。首先点击操作在菜单MVC的View里完成,菜单Controller捕获这个事件,发现是需要刷新主工作区,它处理不了,于是传给它的父Controller—Frame Controller处理,Frame Controller捕获这个事件,直接把它交给主工作区 Controller处理,主工作区 Controller捕获这个事件,让主工作区 View处理刷新操作。是不是觉得很麻烦?对于小型应用程序,应用HMVC模式的优点显现不出来,但是一旦你的应用程序很复杂,HMVC模式的优点就清晰可见。

层次的HMVC解决了客户层程序的复杂性,HMVC揭示了面向对象的优势。

它的优点主要有:

把程序分成了几个部分,降低了依赖性。 
支持鼓励重用代码,组件或者模块。
在今后的维护中,提高了可扩展性。
Kohana V3.0支持HMVC
介绍内容来自百度百科。
附加一篇英文文章:
http://techportal.ibuildings.com/2010/02/22/scaling-web-applications-with-hmvc/

分享到:
评论

相关推荐

    Laravel开发-hmvc

    HMVC(Hierarchical Model-View-Controller)是一种设计模式,它扩展了MVC(Model-View-Controller)模式,允许在更大的项目中更好地组织代码结构。在Laravel框架中实现HMVC,可以增强其可维护性和可扩展性。 标题...

    CI hmvc功能

    **CI HMVC (Hierarchical Model-View-Controller)** CodeIgniter HMVC 是一个扩展了标准MVC(Model-View-Controller)架构的模块化插件,它允许开发者在CodeIgniter框架中实现更复杂的项目结构。HMVC代表分层MVC,...

    改进HMVC设计模式应用于PHP开发的探索.pdf

    HMVC设计模式是一种基于MVC设计模式的改进版本,旨在解决MVC模式在大型Web项目和分布式项目中的缺陷。HMVC设计模式通过实现控制器之间的通信,可以有效地对系统解耦。 HMVC设计模式的优点: 1. 解耦系统:HMVC设计...

    HMVC_VouDeTaxi-源码.rar

    【标题】"HMVC_VouDeTaxi-源码.rar" 指的是一份基于HMVC(Hierarchical Model-View-Controller)架构的VouDeTaxi项目的源代码压缩包。HMVC是一种扩展MVC设计模式的方式,允许在不违反单一职责原则的情况下,将一个...

    ci3hmvc:带有 HMVC 的 CodeIgniter 3.0 RC2

    在这个"ci3hmvc"压缩包中,我们看到的是一个集成HMVC的CodeIgniter 3.0版本,它为开发者提供了更灵活的项目架构。 1. **HMVC 概念**: HMVC是一种扩展的MVC模式,它允许在一个应用程序中嵌套多个控制器。传统的MVC...

    Koseven是一个兼容PHP7的优雅开源面向对象的HMVC框架

    HMVC是一种扩展的MVC模式,允许在应用程序中嵌套控制器,这使得组件间的通信更为灵活,降低了复杂性。Koseven的HMVC设计使得开发者可以创建模块化、可复用的代码,提高应用程序的可扩展性。 **PHP7兼容性** Koseven...

    HMVCPHP框架ClanCats.zip

    HMVC模式即Hierarchical-Model-View-Controller模式,也可以叫做Layered MVC.HMVC模式把客户端应用程序分解为有层次的父子关系的MVC。反复应用这个模式,形成结构化的客户端架构。 HMVC工作原理: Controller是功能...

    laravel-hmvc:Laravel 5 模块。 HMVC 方法

    Laravel HVMC - 模块HMVC 设计模式是一种模块化模式,可以(并且正在)与旧的 MVC 模式同时使用。 基本上,您的 Laravel 5 应用程序结构如下所示: app├── Console├── Exceptions├── Framework├── Http...

    HMVC-Templates:一个简单但功能强大且灵活的代码点火器框架库,带有 HMVC 扩展,用于管理 HTML 视图模板

    #HMVC-模板一个简单但功能强大且灵活的 Code Igniter 框架库,带有 HMVC 扩展,用于管理 HTML 视图模板。 这个库和模板系统使得快速创建 HTML 模板文件变得非常简单和容易,以将标记从页眉和页脚部分可视化呈现,...

    codeigniter-hmvc:Codeigniter HMVC转换

    点火枪HMVC 带有源代码的示例在这里,我们将通过示例了解如何配置Hmvc模块。 可以从教程底部的链接下载Hmvc模块以及该应用程序的完整源代码。 为您的安装正确设置** $ config [base_url] **配置HMVC模块打开项目根...

    CI-HMVC-Migrations:HMVC CodeIgniter的迁移类-MX模块

    CodeIgniter HMVC迁移类此类允许与HMVC模块一起使用迁移(与) 用法: 将MY_Migrations.php类导入到applications/libraries 在模块中创建文件$modules_path/$module_name/config/migration.php 。 module_config_...

    CI-hmvc-login-module:带有 Wiredesignz MX 扩展的 CodeIgniter 登录模块 - HMVC

    CI hmvc 登录模块带有 Wiredesignz MX 扩展的 CodeIgniter 登录模块 - HMVC ##演示 ###描述这是一个登录模块,旨在与 CodeIgniter 的 Wiredesignz MX 扩展一起使用。 该模块包含与演示版本相同的设置。 它具有用户...

    limovico:PHP 的轻量级 HMVC 框架

    什么是 Limovico Limovico 是一个轻量级的分层模型视图控制器框架,用于使用 PHP 构建网站。 它带有几个核心和库类来处理网站的主要功能。 特征 模块化模型-视图-控制器结构。 控制器可以调用其他模块的模型和视图...

    Ignition-Go:Bootstrap4 Codeigniter 3模块化(HMVC)应用程序构建框架-用于构建企业级Web应用程序...版本:CodeIgniter 3.1.9 AdminLTE 3.4 Bootstrap 4.5.0

    (如果您想使用旧的Bootstrap 3.3,请参阅以前的版本) 创建“ blox”模块以构建企业级Web应用程序使用Codeigniter 3.x和Bootstrap 4.xx 可用作快速入门项目的启动器/样板什么是blox? “ Blox”只是Web应用程序中...

    CI_HMVC_LoReg:Codeigniter HMVC登录注册系统

    在 Codeigniter 2.1 中设置 HMVC 这假设您已经安装了 Codeigniter 2.1.x 在下载 codeigniter-modular-extensions-hmvc。 解压存档将所有文件从提取的存档核心目录移动到 Codeigniter 实例的 /application/core 目录...

    in-HMVC:codeIgniter HMVC + GroceryCrud + TankAuth

    在 HMVC codeIgniter HMVC + GroceryCrud + TankAuth 这个包对于使用 CodeIgniter 框架和 GroceryCRUD 和 TankAuth 创建网络非常有用。 我们不需要再次设置这个组合。 CodeIgniter 在这个包上使用 HMVC 结构。 因此...

    Laravel-4-Modular-Approach:这是 HMVC 形式的定制 laravel 4。 本模块覆盖

    Laravel 4 模块化 (HMVC) 方法 这是在 HMVC 模式中定制的 Laravel 4.2。 本模块涵盖: 配置, 控制器, 数据库:迁移和播种, 朗, 楷模, 意见, 自定义过滤器,以及 自定义路线。 这个怎么运作: 我们正在...

    codeigniter3_hmvc_ion_auth:带有 HMVC 和 Ion_Auth 的 CodeIgniter 3.0

    带有 HMVC 和 Ion_Auth 的 CodeIgniter 3.0-dev 我的第一个 Github 存储库,我只是将 CI3.0-dev 与 Wiredesignz HMVC 模块和 Ion_Auth 结合起来。 还包括一个模板模块。 文档将很快提供。 同时,此处提供有关 HMVC ...

Global site tag (gtag.js) - Google Analytics