- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
eeplat的hmvc和控制器
控制器概述概述控制器是易元平台界面层部分的核心概念,平台中界面展示都是通过平台的各种控制器综合控制输出的。易元平台的界面层模型采用了HMVC模式(可以参看1.3)。HMVC模式的采用使得易元平台界面层能够实现从粗粒度到细粒度的灵活的复用,也就是说从比较大的界面区域到最细粒度的界面元素都能够得到良好的复用。为了实现复用,把这些界面粒度通过控制器来实现,也就是说界面的各层次的复用通过各层次的控制器的复用来实现。传统的MVC模式,一个界面对应一个控制器,这个界面和控制器是粗粒度的,这也是传统MVC模式在复用方面无法做到更细更深层次复用的一个根本原因。这也是界面深层次复用面临的一个问题。易元平台采用多层次的HMVC模式,通过各层地各类控制器控制界面的输出,实现了从粗粒度到细粒度的界面控制复用。控制器分类控制器分类可以有多种分类方式,最基本的按照概念即用途分类。也可以从开发方式上分类,也可以从复用场景上分类。基本概念分类在易元平台中,界面层模型主要包括:面板、表格、表格元素、功能树和菜单五类基本概念。如下图所示:相应的从概念分类分为:面板控制器(pane)表格控制器(grid)表格元素控制器(form)功能树控制器(tree)菜单控制器(menu)实现方式分类从实现角度讲,分为三种实现方式。Java类方式,即控制器的实现为一个Java类,命名上无标识,此类控制器的开发、扩展修改需要编译后才能被使用;Java类+模板方式,控制器的实现通过部分Java类+模板脚本(freeMarker)共同实现,由于采用了脚本,所以此类控制器的开发相对更加简洁,但同样不要编译后才能被使用;此类控制器从名称上最后一部分名字以T开始,如:form.TPane、form.TService等。OnlineDevelop方式,即在线开发方式,采用在线的JavaScript脚本和freeMarker脚本开发控制器,此类控制器在线开发即时执行,无需编译,存储在系统模型数据库中,因而在在线开发方面具有很好的优越性;此类控制器从名称上最后一部分名字以TDB开始,如:pane.TDBPaneTemplate、grid.TDBGridTemplate等。复用场景分类从复用场景上分为平台控制器和项目控制器。平台控制器即基本上是各应用场景均能用到的和应用无关的控制器,如常见各种表格、各种表格元素、各种按钮形式等。项目专用控制器是指为了满足某一特定的项目的需求而开发的智能应用于该项目特定场景吓的控制器,这类控制器无法在更通用的层次复用,只能在该特定应用场景下复用。HMVC模式简介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揭示了面向对象的优势。它的优点主要有:把程序分成了几个部分,降低了依赖性。支持鼓励重用代码,组件或者模块。在今后的维护中,提高了可扩展性。
文档评论(0)