EEPlat的控制器详解
控制器是EEPlat平台界面层部分的核心概念,平台中界面展示都是通过平台的各种控制器综合控制输出的。
EEPlat平台的界面层模型采用了HMVC模式。HMVC模式的采用使得EEPlat平台界面层能够实现从粗粒度到细粒度的灵活的复用,也就是说从比较大的界面区域到最细粒度的界面元素都能够得到良好的复用。为了实现复用,把这些界面粒度通过控制器来实现,也就是说界面的各层次的复用通过各层次的控制器的复用来实现。
传统的MVC模式,一个界面对应一个控制器,这个界面和控制器是粗粒度的,这也是传统MVC模式在复用方面无法做到更细更深层次复用的一个根本原因。这也是界面深层次复用面临的一个问题。
EEPlat平台采用多层次的HMVC模式,通过各层地各类控制器控制界面的输出,实现了从粗粒度到细粒度的界面控制复用。
控制器分类
控制器分类可以有多种分类方式,最基本的按照概念即用途分类。也可以从开发方式上分类,也可以从复用场景上分类。
基本概念分类
在EEPlat平台中,界面层模型主要包括:面板、表格、表格元素、功能树和菜单五类基本概念。
如下图所示:
相应的从概念分类分为:
(1)面板控制器(pane)
(2)表格控制器(grid)
(3)表格元素控制器(form)
(4)功能树控制器(tree)
(5)菜单控制器(menu)
实现方式分类
从实现角度讲,分为三种实现方式。
(1) Java类方式,即控制器的实现为一个Java类,命名上无标识,此类控制器的开发、扩展修改需要编译后才能被使用;
(2) Java类+模板方式,控制器的实现通过部分Java类+模板脚本(freeMarker)共同实现,由于采用了脚本,所以此类控制器的开发相对更加简洁,但同样不要编译后才能被使用;此类控制器从名称上最后一部分名字以T开始,如:form.TPane、form.TService等。
(3) OnlineDevelop方式,即在线开发方式,采用在线的JavaScript脚本和freeMarker脚本开发控制器,此类控制器在线开发即时执行,无需编译,存储在系统模型数据库中,因而在在线开发方面具有很好的优越性;此类控制器从名称上最后一部分名字以TDB开始,如:pane.TDBPaneTemplate、grid.TDBGridTemplate等。
复用场景分类
从复用场景上分为平台控制器和项目控制器。
(1)平台控制器即基本上是各应用场景均能用到的和应用无关的控制器,如常见各种表格、各种表格元素、各种按钮形式等。
(2)项目专用控制器是指为了满足某一特定的项目的需求而开发的智能应用于该项目特定场景吓的控制器,这类控制器无法在更通用的层次复用,只能在该特定应用场景下复用。