WEB开发网
开发学院网页设计JavaScript 使用脚本实现设计和性能的平衡 阅读

使用脚本实现设计和性能的平衡

 2010-09-14 13:32:58 来源:WEB开发网   
核心提示: 我相信您多年前就已经清楚上面提到的原则,但是上面的讨论对于回答下面这个问题相当重要:使用脚本实现 Java 接口和 javax.script.Invocable 接口将如何改进我们的开发流程?我不想在这里争论动态类型、闭包、运行时修改和动态语言一般提供的其他特性(有关这些方面的更多信息,使

我相信您多年前就已经清楚上面提到的原则,但是上面的讨论对于回答下面这个问题相当重要:使用脚本实现 Java 接口和 javax.script.Invocable 接口将如何改进我们的开发流程?我不想在这里争论动态类型、闭包、运行时修改和动态语言一般提供的其他特性(有关这些方面的更多信息,请参阅 参考资料 一节)。我将谈论如何在 Java 应用程序合理地使用脚本。您可能已经猜到了, Invocable 接口将发挥重要的作用。

在 Java 应用程序的特定点实例化脚本引擎和执行脚本是很简单的事情。虽然这一实践在开发流程中有明确的位置,但是无结构(或结构松散)的脚本将对良好的面向对象设计造成障碍。应用程序最可能使用良好的面向对象实践和许多设计模式(如 IoC),因此您需要使用不会对原来的努力造成影响的解决方案来实现总体良好的应用程序设计。因此, 使用接口的设计原则结合在脚本中实现的接口可以同时实现良好的面向对象设计软件和快速开发(使用脚本语言)。

当然,谈论到脚本时还有一个重要的问题需要注意,那就是性能。如果我们使用 JavaScript 或 Groovy 编写的脚本实现一些大部分接口,那么这对整个解决方案性能有什么影响呢?幸运的是,一些机制和模式可以帮助我们解决此问题。

理想的情况是在开发阶段拥有动态语言的灵活性,而在生产过程拥有纯 Java 语言的性能。幸运的时,大多数脚本语言都提供了一些机制可实现这一目的。主要为将脚本编译为 Java 类的功能。这样,我们就可以使用它们实例化常规 Java 对象。大多数“模型”脚本引擎都提供了这种功能,但是其中一些(比如说 Groov)还更进一步定义了一些 Ant 任务或 Maven 插件以供开发人员在构建流程中使用。

现在,我们在可执行源代码中拥有了脚本并在项目中拥有该脚本的编译过的版本。实现原始目标已经简单的许多。有多种方法可以实例化某个接口的具体实现,这取决于应用程序所满足的特定条件。此处,我将演示最为著名的 工厂方法模式。

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 脚本 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接