Groovy-dsls
提供:Dev Guides
Groovy-DSLS
Groovyでは、最上位ステートメントのメソッド呼び出しの引数の括弧を省略することができます。 これは「コマンドチェーン」機能と呼ばれます。 この拡張機能は、そのような括弧のないメソッド呼び出しを連鎖できるようにすることで機能し、引数を括弧で囲む必要も連鎖した呼び出しの間にドットも必要としません。
呼び出しが a b c d として実行される場合、これは実際には* a(b).c(d)*と同等になります。
DSLまたはドメイン固有の言語は、Groovyで記述されたコードを単純化し、一般ユーザーが簡単に理解できるようにすることを目的としています。 次の例は、ドメイン固有の言語を持つことの正確な意味を示しています。
上記のコードは、printlnステートメントを使用してコンソールに出力される数字のリストを示しています。 ドメイン固有の言語では、コマンドは次のようになります-
したがって、上記の例は、ドメイン固有言語のニーズを満たすためのプログラミング言語の変換を示しています。
GroovyでDSLを実装する方法の簡単な例を見てみましょう-
上記のプログラムを実行すると、次の結果が得られます-
以下は、上記のコードの実装について注意する必要があります-
- クロージャを受け入れる静的メソッドが使用されます。 これは、DSLを実装するための手間のかからない方法です。
- 電子メールの例では、EmailDslクラスにmakeメソッドがあります。 インスタンスを作成し、クロージャー内のすべての呼び出しをインスタンスに委任します。 これは、「to」セクションと「from」セクションが最終的にEmailDslクラス内でメソッドを実行するメカニズムです。
- to()メソッドが呼び出されると、後でフォーマットするためにテキストをインスタンスに保存します。
- これで、エンドユーザーが理解しやすい簡単な言語でEmailDSLメソッドを呼び出すことができます。