URI の作成を容易にする小さな Web API を作成します。各リソース クラスには、必要なパラメーターを受け取るメソッドが含まれてcreateURI
いる必要があります。このメソッドは、ヘルパー メソッド をpopulateUriTemplate
バックグラウンドで使用して URI 文字列を作成する必要があります。populateUriTemplate
URI テンプレートを設定するには、キーと値のペアが必要です。Scala や Python などの別の言語では、名前付きパラメーターを使用しますが、Java はそれらをサポートしていません。問題は、Java で名前付きパラメーターをシミュレートする方法です。
簡単な解決策は、マップを作成することです。
public String createUri(int id, String name){
Map<String, Object> params = new HashMap<String, Object>();
params.put("id", id);
params.put("name", name);
return populateUriTemplate(params);
}
しかし、最初にマップを作成して各パラメーターを配置するのは好きではありません。
もう 1 つのアイデアは、静的メソッド を使用param
してキーと値のペアを作成することです。
public String createUri(int id, String name){
return populateUriTemplate(param("id", id), param("name", name));
}
私にはずっと良く見えます!
さらにいくつかの文字が必要な場合でも、より自明にするために少し洗練することができます。
public String createUri(int id, String name){
return populateUriTemplate(key("id").value(id), key("name").value(name));
}
ビルダー パターンも考えましたが、これでは API のユーザーがリソース クラスごとに明示的なビルダーを作成する必要があり、面倒でメリットがありません。toString
適切に実装されたメソッドが存在する限り、パラメーターの型は重要ではありません。
私のお気に入りは、上記の静的メソッド (param(key, value)
またはkey(k).value(v)
) を使用した両方のアプローチの 1 つです。この場合、名前付きパラメーターをシミュレートするより良い方法を知っていますか?