0

我正在考虑将一些条件外部化而不是在 java 中实现它们,以便以后可以根据需要轻松更改它们。

例如,我需要检查给定映射中是否存在某些键,以及映射中某些键的值是否等于某个值。

我正在考虑使用 spring 的表达式语言,但由于我们已经在使用速度模板,我认为它可能是一个很好的候选者。

任何想法?谢谢。

4

1 回答 1

1

您可以轻松地使用速度的#if/#else、#foreach 和其他条件功能来执行业务逻辑,作为速度模板渲染的一部分。

但是,出于多种原因,我通常会尝试将业务逻辑与速度渲染分开:

  • 复杂性:Velocity 模板可能变得难以阅读,尤其是当目标输出本身需要复杂的结果布局时。如果您将额外的业务逻辑添加到组合中,那么
    其他人很快就会变得无法阅读(或者在
    几个月不经常看它之后的自己)

  • 可测试性:测试 Velocity 模板更难,更好地支持 Java 代码的单元/集成测试

  • 功能:Velocity 在设计上并不是一门完整的编程语言,所以你迟早会错过一些东西,而且宏根本不是一个函数,例如默认情况下变量具有全局范围,......你一定会遇到其中的一些如果你让你的模板又大又复杂。

于 2012-10-16T04:32:11.533 回答