3

製品名の文字列セットは限られています。これらの製品名の 1 つを送信する Web サービスもあります。ただし、製品名を別の形式で送信する必要があります。

したがって、メッセージを送信する前に、どこかにフォーマッター/マッパーが必要です。

引数を取り、次のようなハードコードされた文字列を返すハードコードされたマッパークラスを作成できます。

String mapper(String productName) {
    switch (productName) {
    case "product1":
        return "prod1";
    case "product2":
        return "prod2"
}

ただし、このアプローチはあまり好きではありませんが、より良い解決策を考え出すのに苦労しています。誰でもこの問題のより良い解決策を持っていますか?

マッピングをデータベースに保存してから、このマッピング用のDAOを作成することを検討しています。これは、スイッチを使用する代わりに引数をキーとして使用し、データベースにクエリを実行して代替製品名を返しますが、それが本当に良い解決策です。

何かご意見は?

*編集*

これについて言及するのを忘れました:

元の製品名は現在データベースに保存されています。現在のコード/テーブル設定を変更せずにこれらの名前を変換する必要があります。つまり、テーブルと現在のクラスを編集することはできませんが、必要に応じて新しいテーブル/クラスを作成できます。

4

3 に答える 3

1

データベースの使用は柔軟なアプローチであり、何も再起動することなく、いつでもマッピングを適応させることができます。ただし、その場合、パフォーマンスが問題になる場合があります。その場合は、完全なマッピング テーブルのキャッシュを構築し、定期的な更新スケジュールを設定します。

于 2013-04-29T09:29:05.527 に答える