齐燕
摘 要 本文研究了Java语言图形编程工具的设计及应用,以元建模机制为基础,使用模型、视图及控制器的架构实现图形编程工具,并且通过代码转换器的设计实现图形代码及文本代码两者的等价转换。将图形编程工具应用到实际编程中,证明了本文中设计的图形编程工具能够满足实际的需求,并且提高图形编程语言设计的效率,增强了其可复用性及维护性。
关键词 Java语言;图形编程工具;设计;应用
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2017)181-0029-02
由于现在一些青少年过分沉迷于网络游戏中,为了解决这一问题,相关人员就研发了游戏机器人平台,创新游戏的方式。用户能够根据平台对机器人进行编程,使机器人能够代替自己玩游戏,之后根据游戏结果修改程序,之后继续游戏。但是部分青少年没有编程的概念和知识,为了能够解决这个问题,本文就设计了基于Java语言的图形编程工具,以此将编程有效简化,将重点放到通过逻辑图形实现功能的控制上,避免深奥的语句编程,实现娱乐及培养思维能力的目的。
1 图形编程工具总体设计
根据机器人编程的特点,本文将事件驱动编程与图形编程相结合,从而便于开发人员发挥机器人的硬件能力,缩短图形编程工具的研发周期。
为了能够满足事件驱动与图形编程思想需求,图形编程工具的总体设计主要包括以下步骤:
其一,定义事件库。用户事件及系统事件构成了事件库,不同事件具有不同的触发模式。系统事件通过硬件中断所触发,具有较快的响应速度。开发人员自定义用户事件,以EzCAN协议数据包为基础,通过软件触发。
其二,定义事件、动作等图形化表现形式。在定义事件库之后,为了能够将事件类型与其他编程元素区分开来,就要将其表现形式进行设计,也就是图形化方案。
其三,定义动作函数库。动作函数库中具有控制机器人的函数,开发人员直接调用算法和程序,以此缩短开发时间,提高系统执行速度。
其四,图形化界面操作设计。根据其三选择实现图形化编程平台,设计图形化界面中的数据结构,基于可维护性、扩展性及跨平台,实现图形化界面操作。
其五,设计并实现图形编译系统。将图形化程序转换为二进制代码。
2 图形编辑器设计
通过MVC架构模型对图形编辑器进行设计,通过应用程序的数据层、表现层和控制层实现图形编辑器的演化。图形编辑器模型的主要目的就是实现软件处理过程中问题的抽象化,并且将应用过程中的逻辑关系、核心数据和处理过程进行封装。视图的主要目的就是使用图形等方式,将后台模型中的逻辑关系、数据和状态信息充分展现出来。控制器的作用就是实现用户在使用过程中能够操作编辑器,并且协调模型和视图。图形编辑器设计的实现是通过Eclipse平台中的CEF插件进行的。以下对上述关键部分的设计进行详细分析。
2.1 视图的设计
实现图形方式编程就要使用图形符号,那么就要使元模型中的语言元素变为图形符号,并且通过前台实现图形代码的连接和组合,将此形式相互联系成为视图图形。视图设计是扩充图形语言的抽象化过程,通过使元模型中的基本元素成为对应的图形类,还要使连接线、圆形和矩形等图形符号成为程序代码和逻辑关系,能够在前台以图形的方式为用户呈现。视图图形类还能够解决与图形编辑相关的问题,比如尺寸的修改、组合的分离、移动等图形实施的操作。
2.2 模型的设计
设计模型的主要目的就是为了将图形代码中的核心数据和逻辑关系进行保存,通过视图图形将图形代码结构、逻辑及内容展示在前台中。在后台中,编辑器要对视图图形创建对应的模型对象,使其保存代码信息。编辑器创建的模型对象实质为元模型的基本要素对象,设计模型就是以编码为基础,实现元模型中的所有元素和元素之间的语法和语义。
在元模型中添加管理监听器的机制,能够使客户调用程序对模型对象进行操作,从而对内部属性值进行修改,那么模型对象也就会将修改的内容和类型都通知到监听器中。之后,根据模型的变化进行相应的动作。比如用户通过属性编辑器改变条件语句的判断条件之后,其内部变量Condition值也会发生相应变化,通过监听器模型中的SET对象,将Condition变量的值发送到监听器中。
2.3 控制器的设计
控制器的主要作用是协调视图及模型,本文通过扩展和继承GEF中的EditPart类对控制器进行操作。
2.3.1 实现模型对象的监听
控制器作为内部模型对象中的一部分,能够实现监听器的接口。当模型对象向控制器发送改变内部数据的命令的时候,控制器就会根据改变之后的类型和内容创建另外一个视图。除了创建新视图之外,控制器还能够将视图的位置、尺寸及连接等特性进行改变,从而保证视图和模型能够对应。为了使控制器能够实现上述功能,每个控制器都要根据自身需求实现视图的创建和更新。
2.3.2 编辑并为对应的模型对象反馈信息
控制器的功能主要是通过命令类和编辑策略类实现的。命令类主要包括对模型对象和内部属性进行更新的具体类,就控制器来说,要通过特定的需求和相对应的编辑策略类满足用户编辑的需求,以此对后台模型的内部数据进行修改,使编辑操作和模型数据相对应。编辑策略类在控制器的内部,能够根据用户编辑视图的类型创建对应的命令类对象。
2.3.3 设计代码转换器
设计代码转换器的作用主要是通过图形编辑器后台中的模型对象,以此获得全新的图形代码,之后调用翻译部件自动生成文本代码,最终使代码能够满足Java语言需求。其中翻译部件的主要功能就是实现翻译,是以代码模板机制为基础进行的,其主要思想就是通过对文本代码内容进行划分,包括稳定的主体框架及变动的局部细节。前者表示代码模板,后者是通过查询模型对象得到的。
要使元模型中的语言元素能够具有对应的翻译部件,比如IfElse元素,它的翻译部件表示为IfElseCodeGen,使其通过次序把字符串中的if、空白符、左括号“(”、判断条件字符串、右括号“)”、左大括号“{”、由trueSegment变量产生的语句块代码字符串、右大括号“}”、“else”、左大括号“{”、由falseSegment變量产生的语句块代码字符串、右大括号“}”写入到缓冲变量codeBuffer中,在整个翻译结束之后,codeBuffer中的Java代码字符串与IfElse元素实例相对应。
代码模块要求翻译部件根据设定好的步骤进行元素实例的查询,之后根据设定好的位置、顺序和形式将文本代码写入到缓冲变量中。
为了能够使本文中所设计的图形编程工具能够实际应用,就将设计好的图像编程工具率先在游戏机器人中使用。用户可以根据此工具实现机器人的图像编程,使机器人能够代替自己玩游戏。基于此,可以得出,本文中所设计的图形编程工具能够在现实中应用,并且能够满足不同人群的需求,还能够提高图形编程语言设计效率,并且增强图形编辑器在使用过程中的可复用性及维护性。此图形编程工具也可以在其他语言编程设计过程中使用。
3 结论
本文主要研究了基于Java语言的图形编程工具的设计,把纯文本语言转化为图形。与文本编程相比,本文中所涉及的图形编程具有一定的优势,比如:界面生动形象,人们理解起来更加方便;使用起来较为简单,在没有编程知识的基础上也能够使用,不受年龄及技能掌握程度的限制;方便了开发人员将抽象化的逻辑问题通过简洁的形式进行表示,有效提高了程序设计的效率和质量。
参考文献
[1]林信良.Spring2.0技术手册[M].北京:电子工业出版社,2007.
[2]美威尔德,斯尼德,等.SpringFramework 2[M].