問題タブ [architectural-patterns]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - コンストラクターのオーバーロード Java 以外のベスト プラクティス/設計パターン
複数のコンストラクタを持つクラスがあります。それぞれが異なるユースケースを表しています。
Javaコンパイラから同じ消去の問題が発生するまで、コンストラクターのオーバーロードはこれまでのところクリーンなソリューションでした。たとえば、同じ消去を行う別のコンストラクターを追加したいので、以下のように、今のところ回避するためにデフォルトのパラメーターを含めることを選択しました。
しかし、おそらく非常に多くのコンストラクターを使用することは、このユース ケースの適切な設計パターンではないのではないかと強く感じています。おそらく、そのようなシナリオに使用されるより良いソリューションまたはベスト プラクティスの設計パターンがあるでしょう。ビルダーパターンを調べていますが、それが正しいかどうかはわかりません。推奨事項はありますか?
javascript - マッピング用のオブジェクトの配列から一意の文字列を設計および生成する最良の方法
私が解決しようとしている問題は、一連の質問/回答文字列から一意の文字列を生成する最善の方法です。
たとえば、エンド ユーザーがアンケートに記入し、次のように回答したとします。
これらの質問と回答を表す文字列を生成し、それを templateId にマップして、テンプレート化されたメッセージを送信する必要があります。
単純に foreach を実行して、すべての質問と回答を一緒に追加することを考えましたが、問題は、質問と回答が変更されたり、メッセージを送信する目的ではない追加の質問が追加されたりした場合にどうなるかということです。
代わりに、必要な質問だけを選択するように、代わりに find やハッシュテーブル タイプのルックアップなどを使用する必要があります。ここでもパフォーマンスが少し心配ですが、この一連の質問/回答は比較的小さいままであるため、大したことではありません。
この文字列 -> templateId マッピングについても疑問に思っていました。この情報を保存する最良の方法は何ですか?単純なオブジェクトは正常に機能しますか?
説明:
一意である必要も、ハッシュマップである必要もありません。基本的に、バックエンドにはメッセージを送信するための電子メール テンプレートがあります。フロントエンドでは、質問に対する一連の回答を考慮して、どの電子メール テンプレートを使用するかを決定する必要があります。したがって、私の簡単な解決策は、質問/回答を一緒に追加して文字列を生成することでした。"isThereProblemYesWhatisIt?ProductDamagedDoyouwantaRefund?Yes"
つまり、バックエンドで利用可能なテンプレート:
フロントエンドで作成されたマッピング。
ありがとう