JSR296:静悄悄的革命

Swing应用框架(简称SAF)把基础的Swing应用开发流和样板文件包送到成熟的模板模式中,在大部分初始化和国际化进程中使用依赖注入。该架构提供的支持有:

● 应用程序生命周期: 应用程序启动和重要组成部分的创建。主要面板,工具栏和状态栏现在通过模板设计模式控制。此外,应用退出由ExitListeners控制,每个监听在退出之前都会被询问是否能够退出,这就程序会在用户退出时询问是否保存文件并要用户确认操作。监听才接收退出命令,并执行退出。

● 限定动作:创建动作对象源自POJO模式。通过@Action的注释及声明,任何模式都能成为动作对象。动作对象的属性定义其功能和选定的状态。如果该模式接受任何参数,当它作为一个动作时,一个参数注释可以用来指定把什么传送给此模式。该模式不返回或如果需要在背景下工作,它可以返回一个任务对象。

● 异步任务执行和监测:SwingWorkver终于用Java 6发表了 ,它已经允许异步工作,监测进展情况,分析大量数据中的信息等等。任务通过增加信息的概念描述,按照模板模式设计(如,例外操作,成功操作,清除)实施完成的模式,简化了所有这些功能。此外,它以事件的方式把各种SwingWorker发送到指定事件监测,允许代码重复使用以提供正在运行任务的细节(例如,一个统一的进度对话)。两个额外的巨大功能包括通过任务监测服务,监测背景下所有正在执行的任务,以及任务正在执行时,选择禁用适用范围的用户界面。

● 国际化支持:国际化始终是用户界面开发的难题。SAF有助于把所有国际参数置于代码之外。这些被设定在一个属性文件中,如ResourceBundle.但SAF使用文件名协议和依赖注入免费为开发者处理这些问题。此外,它利用Action设置文本,图标和其他属性。它还利用了Task用国际化的方式设定发出的邮件。其结果是,经设定这些功能后,你几乎在应用程序中看不到国际化的代码。

● 会话状态存储:在磁盘中保存应用程序的会话状态,并在应用程序重启时重新加载。这由生命周期管理自动完成,但是也可以用于节省不同状态项目和用户界面状态。

评论:

● “启用”和“选择”属性有更复杂的限定选择:允许连锁限定,如“file.isDirectory”,并允许运算符的使用,“itemsCount>3”或“!isDirectory”。

● 通过属性文件限定动作:因为我可以限定几乎所有的动作特性或元件,所以为什么不能在这两者之间呢?我愿意写 “label1.action = [ MyActions.class ,sayHello ] ”来解决它。

● 用不同的参数为不同的模式限定动作:该架构允许使用@Action.Parameter注释,通过参数限制模式的动作。如果还能够允许限定指定动作,允许每一个指定动作有自己的参数设定就更好了。其实,可能会有一列可供选择的@Action.参数被放置到@Action注释中,并能够用它多次注释一个模式。

从许多方面来看,这一架构在去掉了很多创建好的样板文件的同时,也发展了用户界面应用程序,并把它们的质量提高到了更易于升级的新层次。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzywxw.html