浅谈HMVC模式

 

上一次结合ASP.Net程序谈了MVC模式的简单快速理解,这次谈谈自己对HMVC模式以及如何在程序框架中的应用.

HMVC模式介绍

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

 

图1
 

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

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

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

  • 把程序分成了几个部分,降低了依赖性。
  • 支持鼓励重用代码,组件或者模块。
  • 在今后的维护中,提高了可扩展性。

HMVC模式例子
    例子将在下次讲解。

posted on 2005-10-31 08:45 晓攀 阅读(2644) 评论(5) 编辑 收藏

评论

#1楼  回复 引用   

MVC现在最大的缺陷我觉得是不能可视化编辑视图,这个为这个架构的实施带来了很大的不变,虽然我看到最新的castle好像支持可视化了,但都是有限支持,期待中....
2005-10-31 09:26 | cnvas[未注册用户]

#2楼  回复 引用 查看   

期待下一篇
2005-10-31 09:44 | Sadly_Lee      

#3楼  回复 引用 查看   

@cnvas
MVC现在最大的缺陷我觉得是不能可视化编辑视图?
不明白。。。。模式的缺陷。。。是不能可视化编辑视图?
//sigh......
2005-10-31 10:07 | 被遗弃的小指      

#4楼  回复 引用   

这种说法欠妥,但目前好像是这样的吧
2005-10-31 10:10 | cnvas[未注册用户]

#5楼  回复 引用   

层与层之间的依赖关系没弄明白 ,model --->view 那VIEW改变,model 不也变了?
2008-08-29 09:58 | 恩恩[未注册用户]

导航

<2005年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

公告

昵称:晓攀
园龄:7年8个月
粉丝:2
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

相册

开源网址

我关注的博客

积分与排名

  • 积分 - 34835
  • 排名 - 3073

最新评论

阅读排行榜

评论排行榜

推荐排行榜