用 BeanShell 实现公式管理
本文来自编程入门网:hp://www.bianceng.cn/Programming/Java/201106/27271.htm
使用 Java 脚本构建强大、灵活的公式管理系统
在很多中大型的应用中,如 SCM(供应链管理)、CRM(客户关系管理)和 ERP(企
业资源计划)等,使用者往往要根据自身的需求,灵活的对某一些参数值进行变更,使得
按照某固定公式计算的结果符合目前的情况。如不同时期商品价格的折扣率需要根据实际
情况进行调整,或者职员的奖金百分比要根据公司的业绩而定。这就需要有一个强大的公
式管理机制来对一些参数进行灵活调整。
前言
客户的需求是在不断变化的。虽然他们说现在他们公司的职员奖金应该就是按照那个
公式计算,但是过了几个月他们会告诉你这个公式并不是很合理,还需要加一些参数。你
可能会说,这个没问题,我们可以改程序。但是当这样的变更不是一次一个的发生,而是
频繁的、大量的出现时,你也许就在想应该有一个公式管理系统来完成这些琐碎却很重要
的变更了。是的,在很多系统中已经这样做了。这里将介绍一种简单的、易扩展的公式管
理系统,它采用简单灵活的 BeanShell 脚本机制,并且结合 JDOM 技术来实现。在阅读本文
以前,你需要对 BeanShell 和 JDOM 有所了解。
BeanShell 简介
BeanShell 是一种 Java 解释器,它包含的脚本语言基本与 Java 语言兼容,具有体积小、
简单、符合 Java 风格等特点。本文不是介绍 BeanShell 的语法和用法,而是基于 BeanShell
脚本实现一个公式管理器来说明 BeanShell 的强大脚本功能,从而简化 Java 程序员的编程工
作,使他们更深入的了解什么时候使用 BeanShell 技术将使得构建的系统更灵活。你可以阅
读参考资料了解更多 BeanShell 的知识。类似的 Java 脚本技术还有 DynamicJ 等,想要详细
了解它们的更多信息,请查阅后面的参考资料。(请注意:这里的 Java 脚本不是
Javascript。)
JDOM 简介
JDOM 使得用 Java 操作 xml 文件更轻松。这里使用 xml 文件格式对用户的自定义公式库
进行存储,即简单又容易管理。利用 JDOM 技术,能够简单、快速的完成这个任务。如果
你想详细了解有关 JDOM 的知识,请查阅文章后面的参考资料。
公式管理系统的目标
公式管理系统实现的主要目标是:用户可以根据自己的需要自定义公式,包括添加、
修改和删除公式或者公式包含的参数;提供接口使得用户或其它系统能够利用公式库中的
公式进行计算求值。从以上系统的主要功能,可以知道该系统主要包含两个用例:自定义
公式和计算表达式。自定义公式是用户预先定义好某公式包含的参数(包括参数名、参数
1