0

必要に応じて後で簡単に変更できるように、条件を Java で実装する代わりに外部化することを考えています。

たとえば、特定のキーが特定のマップに存在するかどうか、およびマップ内の特定のキーの値が何かに等しいかどうかを確認する必要があります。

Springの表現言語を使おうと思っていたのですが、すでにVelocityテンプレートを使っているので有力な候補ではないかと思いました。

何か案が?ありがとう。

4

1 に答える 1

1

#if/#else、#foreach、その他の速度の条件機能を簡単に使用して、速度テンプレート レンダリングの一部としてビジネス ロジックを実行できます。

しかし、私は通常、いくつかの理由から、ビジネス ロジックを速度でのレンダリングから分離しようとします。

  • 複雑さ: Velocity テンプレートは、特にターゲット出力自体が複雑な結果レイアウトを必要とする場合、読みにくくなる可能性があります。追加のビジネス ロジックをミックスに追加すると、すぐに
    他の人が読むことができなくなり
    ます。

  • テスト容易性: Velocity テンプレートのテストが難しくなり、Java コードの単体/統合テストのサポートが改善されました。

  • 機能性: Velocity は設計上、完全なプログラミング言語ではないため、遅かれ早かれいくつかのことを見逃してしまいます。また、マクロは単純に関数ではありません。たとえば、変数はデフォルトでグローバル スコープを持っています。テンプレートを大きく複雑にする場合。

于 2012-10-16T04:32:11.533 に答える