HMVC

HMVC（Hierarchical-Model-View-Controller），也可以叫做 Layered MVC。顾名思义，就是按等级划分的 MVC 模式，简单的解释就是把MVC又细分成了多个子 MVC，每个模块就分成一个 MVC。

使用 HMVC 的好处就是可以降低各个功能模块之间的耦合性，提高代码复用性，使得每个功能都可以独立出来，每个模块都有自己的 MVC 结构，这就有点像 ActiveX 控件，每个控件都有自己的行为，控件之间互不影响。

CodeIgniter 结构示意

  application
  	|- controllers
  		|- controllers1.php
  		|- controllers2.php
  		|- ...
  	|- models
  		|- models1.php
  		|- models2.php
  		|- ...
  	|- views
  		|- views1
  			|- index.php
  			|- footer.php
  			|- ...
  		|- views2
  			|- index.php
  			|- footer.php
  			|- ...
  		|- ...

　　上面的就是 CodeIgniter 原来的结构，如果是 HMVC 的话结构就是：

  application
  	|- modules
  		|- module1
  			|- controllers
  				|- controllers.php
  			|- models
  				|- models.php
  			|- views
  				|- index.php
  				|- footer.php
  				|- ...
  		|- module2
  			|- controllers
  				|- controllers.php
  			|- models
  				|- models.php
  			|- views
  				|- index.php
  				|- footer.php
  				|- ...
  		|- ....
  	|- controllers
  		|- ...
  	|- models
  		|- ...
  	|- views
  		|- ...

请注意，以上只是 CodeIgniter 框架的 HMVC 文件夹结构的一种表现形式，不代表 HMVC 必须以这个结构为准，需要根据不同语言或框架来设计其 HMVC 结构。

Category:软件架构
Category:软件设计模式
Category:编程范式
Category:人機互動