设计模式在图上信息关联查询中的应用

2018-01-13 01:45赵玉林
网络安全技术与应用 2018年1期
关键词:设计模式视图关联

◆赵玉林 冯 燕

(中国电子科技集团公司第二十八研究所 江苏 210000 )

0 引言

在作战指挥控制中,指挥员需要对战场环境信息进行查询和显示,包括敌我双方的机场、港口、部队部署等,其中查询方式需要支持按属性查询、按名称查询、按矩形区域、按圆形区域查询等多种查询方式;查询结果需要以军标、列表、文字、图片等多种展现形式进行展现;查询结果需要支持删除、定位、闪烁等控制操作。同时指挥员在使用过程中,根据作战需求提出了新的查询内容以及展现方式。针对上述需求,本文基于设计模式的设计思想,构造了一个良好的、松耦合的软件架构,以适应指挥员使用需求变化的需要,具备较好的适应性和可扩展性。

1 MVC设计模式

对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制三种部件[1-2]。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化——传播机制。

视图(View) 指的是用户交互界面,在MVC 设计模式中,将界面展示与业务流程的处理相分离,视图只负责界面数据和用户请求的采集和简单处理,而将业务流程的处理完全交给模型部分。同时,接受模型的处理结果显示给用户。

控制器(Controller)指的是用户请求的接收和转发,控制从视图接收用户请求,并不对用户提供的业务数据进行任何处理,而是根据用户提供的业务信息传递给相应的模型进行处理,模型处理完成后,再选择相应的视图展示给用户。

模型(Model)指的是业务流程的处理。模型是MVC 设计模式的核心,封装了系统的核心流程和业务规则。模型接受来自视图的用户请求或数据,并将处理结果返回给视图,业务流程的处理过程对其它模块是封装的,仅提供访问接口,保证了模块间的独立性,使系统易于维护。当用户对界面显示有新的要求时,并不需要修改后台的业务逻辑,反之,当业务逻辑发生变化时,也能够保持用户界面不变。

采用MVC模式可以清楚地分离用户界面与业务逻辑,能够为系统开发提供基本的分析方法和清晰的设计框架,能够将模块的功能限制在局部范围内,降低系统的耦合度,从而提高软件性能、可维护性以及代码复用率,从而达到提高软件质量的目的。

2 软件设计与实现

软件框架,在实际使用过程中,参谋人员主要关注的是态势图形屏,其操作也主要是基于态势图形进行的,图上信息关联查询应能够提高参谋人员查询相关资料并进行方案、计划拟制以及图形的标绘的效率。信息的分类须从用户的角度出发,达到合理、快速、方便、直观和可用。具体包括:查询信息的图示化,如敌我当面兵力的火力范围、部署兵力的作战半径、最快到达作战区域的时间等;查询信息的关联化:如从海域(空域等)查询作战平台、从作战平台查询装备、从装备查询性能;同时也可反向查询平台隶属单位、任务使命等。

综合考虑用户需求,态势图形屏承担着向用户显示问题模型、与用户进行操作和I/O 交互的职责,用户一方面希望保持用户界面稳定,另一方面又要求态势图形屏必须根据用户需要进行显示内容和显示形式的调整。基于MVC设计模式构建了图上信息关联查询的软件架构,如图1 所示。

图上信息关联查询软件按照三层结构分为表示层、业务层和数据层。MVC 设计模式中的视图和控制器的功能在表示层中实现;模型则涵盖了三层架构中的业务层和数据层。在业务层我们定义了业务实体对象和业务处理对象;数据层包括数据对象、数据访问组件等。控制器通过态势图形屏获取用户请求,并将其反馈给模型,实现对模型的查询控制,协调模型与视图之间的交互;数据库为模型提供数据服务,数据访问对原始数据进行操作,完成与业务逻辑之间的交互;通过数据层和业务层对查询请求的处理,模型将查询数据返回视图,由控制器进行显示样式的选择,最终将用户请求的查询结果以不同显示样式的形式返回给态势图形屏。

图1 MVC设计模式在图上信息关联查询中的应用模型

3 视图设计与实现

提供统一的查询结果数据的显示样式,包括军标、列表、文字、图片等,可支持同时显示其中的一种或多种,如图2所示。

4 控制器的设计与实现

设计模式中的Command模式可以将调用操作的对象与知道如何实现该操作的对象解耦。命令是头等的对象,可像其他的对象一样被操纵和扩展,还可将多个命令装配成一个复合命令。另外,使用Command模式,增加新的命令很容易,因为这无需改变已有的类。因此采用Command模式,将一个查询请求封装为一个对象,绑定一个接收者对象到一个动作并调用接收者的相应操作以实现Execute,见表1。

图2 查询结果数据显示样式

表1 查询命令表

5 模型的设计与实现

模型用来管理应用程序域的行为和数据,可分为业务逻辑层和数据访问层。业务逻辑层从控制器接收用户查询请求,对业务逻辑进行处理,并将处理结果返回给控制器,以供控制器选择视图显示。数据访问层封装了与数据库连接和交互的公共操作,专门处理与数据库相关的操作。

6 业务逻辑层

6.1 基于XML的查询配置文件设计

XML (eXtensible Markup Language) 即可扩展标识语言,它是用于标记电子文件使其具有结构性的标记语言[3-4],描述了文档数据对象的结构和意义,不需要对特定领域提供特殊的支持,也不需要任何插件,相对于以往任何一种标记语言,它具有如下特点:

(1)XML是描述数据的标记语言,它允许将数据组织成数据结构,用户可以按照自己的需要剪裁数据;

(2)XML是可扩展的,用户可以自行定义自己的标记和文档结构,可以在XML文档中以自己的方式组织数据,以便更好地从语义上修饰数据,这样就能以容易而一致的方式格式化和传送数据;

(3)XML文件结构严谨,每一个XML文件都有物理和逻辑结构:物理上而言,文件由称为实体的单元组成;逻辑上而言,文件由声明、元素、注释、字符引用和处理指令组成,物理和逻辑结构必须严格地嵌套,并且其嵌套可以复杂到任意程度,能表示面向对象的等级层次;

(4)XML文件是可校验的,它可以包括一个语法描述,使应用程序可以对此文件进行结构确认。

我们将查询命令、查询内容、结果显示类型、关联查询通过xml文件进行形式化表示,如图3,其中关联查询配置见图4。

图3 查询配置示意图

图4 关联查询配置示意图

6.2 业务逻辑处理设计

业务逻辑处理流程包括查询命令解析与匹配、查询结果获取、查询结果封装等,具体业务逻辑处理信息流程见图5。

(1)查询命令解析与匹配

接收从图上信息查询显示服务的查询命令并进行解析,以分类编码、编码和敌我属性为匹配关键字与查询基本配置进行匹配关联,自动获取查询语句。

(2)查询结果获取

根据自动匹配获取的查询语句调用通用数据库查询组件从数据库中获取查询结果,并生成统一的格式文件。

(3)查询结果封装

读取指定格式的文件,并根据查询配置的查询结果显示样式进行查询结果的封装,其中进一步的关联查询命令,通过关联查询配置进行组装,如可将图4所示中的关联查询配置组装成“INQ GC 5 BD 1 xx部队” 关联查询命令,菜单名为“维护部队”。业务逻辑处理在接收到该查询命令时,与图3中的第二条查询配置进行匹配。

图5 业务逻辑处理流程图

7 数据访问层

设计通用数据库查询组件负责与数据库建立连接,封装数据库方法,提供数据获取接口,屏蔽了对数据库访问的细节和编码特征。可将数据存成指定格式的数据文件,包括有标题和无标题两种格式,见图6,同时支持图片数据的获取,可将图片数据生成为指定文件。

图6 数据文件示意图

8 结束语

图上信息关联查询软件采用MVC模式设计和开发,使得整个软件架构结构清晰,容易进行模块划分,增强各层和各模块的高内聚、低耦合的特性,使各模块的开发相对独立,从而使软件的扩展性、复用性和维护性得到极大的提高,给系统的开发、扩展、维护带来了方便;且由于不同层各司其职,每一层不同的应用具有某些相同的特征,这有利于通过工程化、工具化产生管理程序代码,可以很容易地再加入新的业务和功能,从而适应各种需求的变化。

[1]Erich Gamma,李英军.设计模式-可复用面向对象软件的基础.机械工业出版社,2000.

[2]陈超,金晶.态势显示软件人机界面建构方法研究[J].指挥信息系统与技术,2011.

[3]胡海静,王育平.XML技术精粹.机械工业出版社,2002.

[4]陈超,金晶.CISR系统进程间数据推送方式改进及应用[J].指挥信息系统与技术,2012.

猜你喜欢
设计模式视图关联
“1+1”作业设计模式的实践探索
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
三维协同设计模式下的航天项目管理实践与展望
“一带一路”递进,关联民生更紧
交通机电工程设计模式创新探讨
奇趣搭配
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图