创建一种声明性XML UI语言

用编程代码编写 GUI 常常导致混乱的设计,这反过来导致业务逻辑和 UI 代码之间的混淆。本文探讨如何创建带有配套 Java 框架的声明性 XML UI 标记集合,以便在运行时解析、构造并最终将已声明的GUI 组件绑定到业务逻辑。

简介

GUI 开发可能是令人畏惧的任务。GUI 框架并不是总是拥有良好的文档,需要的代码量可能迅速增长,拖慢开发工作流。特别是支持这些 GUI 框架的拖放工具和 IDE 通常诱使 GUI 软件开发人员创建难以管理和阅读的代码。这可能会进一步混淆业务逻辑和 GUI 描述代码之间的界限,从而使软件维护更加困难。

常用缩略词

API:应用程序编程接口

DOM:文档对象模型

GUI:图形用户界面

HTML:超文本标记语言

IDE:集成开发环境

JAR:Java 压缩文档

UI:用户界面

URI:统一资源标识符

XML:可扩展标记语言

XSD:XML 模式信息集模型

W3C:万维网联盟

这就是声明性 UI 语言之所以方便的原因。UI 语言描述 “是什么”,而不是 “该如何”。例如, HTML 描述显示的内容,而不是描述用于呈现内容的呈现函数。声明性语言并不指定 “该如何”,从而省略了控制流。尽管这种省略听起来好像一种限制,但它实际上是一种优点,因为控制流的副作用 — 如修改全局状态(比如变量)或调用其它函数或方法 — 被消除了。选择声明性语言还有利于将 UI 代码和应用程序代码分隔开来。这种分离将来还能提供一些好处,比如明确区分项目和团队角色,这甚至有可能降低业务逻辑和多个视图或视图技术之间的集成成本。

目前正在使用的声明性 XML UI 的例子不在少数。使用 GNOME 桌面环境的Linux 和 UNIX 操作系统有 Glade。Microsoft Windows 用户拥有 Extensible Application Markup Language (XAML),该语言支持丰富的功能,包括在 XML 中插入代码。Adobe Flex Framework 的MXML 格式为 Adobe Shockwave (SWF) 播放器描述 GUI 并包含代码插入。参阅 参考资料 中的链接了解更多信息。

Java 技术中的基本声明性 UI 框架的必要组件可能包括:

验证:使用 XML Schema

一个 DOM:处理具体事宜的自定义 DOM,比如同步 GUI 组件状态和 XML 节点状态

持久性: GUI 的编组(marshalling)和解组(unmarshalling)

图像数据:存储为 Base64 数据

Swing 组件:GUI 开发常用的Swing 组件的表示

下面可以创建声明性 XML 了,创建过程中要谨记上述必要组件。

时间: 2024-09-17 03:55:25

创建一种声明性XML UI语言的相关文章

声明性 WCF安全性

目录 安全方案 Intranet 应用程序 Internet 应用程序 企业对企业应用程序 匿名应用程序 无安全性 声明性安全框架 实现 SecurityBehaviorAttribute 客户端声明性安全 SecurityHelper 和 SecureClientBase<T> 这一切意味着什么 安全性到目前为止是 Windows Communication Foundation (WCF) 最复 杂的领域.在服务端的每次 WCF 操作调用中,安全都由服务契约.操作契约. 错误契约(如果存在

用Python创建声明性迷你语言的教程_python

大多数程序员考虑编程时,他们都要设想用于编写应用程序的 命令式样式和技术.最受欢迎的通用编程语言(包括 Python 和其它面向对象的语言)在样式上绝大多数都是命令式的.另一方面,也有许多编程语言是 声明性样式,包括函数语言和逻辑语言,还包括通用语言和专用语言. 让我们列出几个属于各个种类的语言.许多读者已经使用过这些工具中的许多工具,但不见得考虑过它们之间的种类差别.Python.C.C++.Java.Perl.Ruby.Smalltalk.Fortran.Basic 和 xBase 都是简单

EJB 3.0+Aspect实现声明性编程初步

编程 提要 本文将与你一同探讨怎样把注解和方面的威力联合起来,以与EJB 3.0兼容的方式为企业实现提供声明性服务,而在同时仍然提供容器的独立性. 一. 引言 在我们共同寻求进一步提高软件开发生产性能的方法的过程中,我们-作为Java社团成员-一般都转向J2EE来提供针对企业开发中更具挑战性的技术问题如分布式事务管理.并发性和对象分布等的解决方案.其背后的指导思想-这些复杂的企业服务能被应用程序服务器供应商所实现并能为商业开发者所平衡-的确是一种很好的思想.J2EE,具体地说是EJB,已成功地提

学习10种良好的XML使用习惯

简介 人们都很喜欢XML以及它所提供的灵活性和互操作性,但是,通过使用一些技巧,可以使与XML的互操作和与XML一起使用的工具更加简单.在处理XML时养成一些良好的习惯可以保证最高效地利用您的XML文档和应用程序. 使用 10 种良好的习惯 以下是 10 种最良好的XML习惯: 定义XML和编码 使用 DTD 或 XSD 记得进行验证 验证并不总是能够解决问题 XML 结构和属性 使用 XPath 查找信息 并不总是需要使用解析器提取信息 何时使用 SAX 而非 DOM 解析 何时使用 DOM

一眼毁三观:JS中不为人知的五种声明Number的方式

跟小组里一自称小方方的卖萌90小青年聊天,IT男的坏习惯,聊着聊着就扯到技术上去了,小方方突然问 1.声明一个数值类型的变量我看到三种,区别在哪: var num = 123; //方式一 var num = Number(123); var num = new Number(123); 2.方式一明明是个数字字面量,为毛平常我们可以直接在上面调用各种方法,如下: var num = 123; console.log(num.toString()); 我嘴角微微一笑:少年你还嫩了点,哪止三种,我

JS中不为人知的五种声明Number的方式简要概述_javascript技巧

跟小组里一自称小方方的卖萌90小青年聊天,IT男的坏习惯,聊着聊着就扯到技术上去了,小方方突然问 1.声明一个数值类型的变量我看到三种,区别在哪: 复制代码 代码如下: var num = 123; //方式一 var num = Number(123); var num = new Number(123); 2.方式一明明是个数字字面量,为毛平常我们可以直接在上面调用各种方法,如下: 复制代码 代码如下: var num = 123; console.log(num.toString());

信息安全要创建“四种能力” 落实等级保护制度

面对信息化的高速发展,信息安全面临着极其严峻的形势.为此我们ZDNet安全频道采访了国家信息化专家咨询委员会曲成义老师,曲成义老师对信息安全的认识和应采取的对策作了精辟的概述,下面就让我们来分享一下他的见解: (一)要重视"信息安全"的四大特征和难点 1.被"信息安全"保护的对象(网络信息系统)是一个"复杂巨系统",它包括了大量的软件和硬件的IT产品:一个跨部门和跨地域的网络通信系统:一套组织管理和标准规范的机制:一个机房.电力和安保的物理环境:

android-只用一些字符创建一种字体

问题描述 只用一些字符创建一种字体 我甚至都不知道怎么正确的能说这个,但是我想做的就是: 我想在我的应用中用一些特殊的字体,例如x?,但是它并不在系统字体库中 我可以简单地定义自己的并与特定字符的字体但我想系统字体用于其他一切.我可以在这里边用特殊字符定义我自己的特殊字体,但是我想要这个系统字体能够在其他地方也能用. 有没有什么方法来转换一个fail-over字体? 解决方案 要自己载入这个字体库,然后设置其显示字体即可. 只能运行时更改. Typeface.createFromAsset(xx

mfc求助-Visual Studio 2012用标准MFC怎样创建一个空白窗口?(C语言编写)

问题描述 Visual Studio 2012用标准MFC怎样创建一个空白窗口?(C语言编写) 怎么使用Visual Studio 2012创建窗口,不是问代码怎么写,是问怎么使用这个软件弄出写代码的界面.求指导!谢谢