問題タブ [factory]
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.
design-patterns - このファクトリタイプのパターンの名前は何ですか?UMLでどのように表現しますか?
例:ホイール、ブレーキ、エンジン、クラッチ、オートボックス、マニュアルボックス、エレクトリックウィンドウ、リアパークセンサー、ヒートシートなど、いくつかのタイプがあります。これらはすべてICarPartマーカーインターフェイスを継承します(属性(javaアノテーション)である可能性がありますが、この段階では重要ではありません)。
次に、すべての車種を表すことができる車のクラスを作成します。
それから私は車を作るための工場を書きます。工場では、さまざまな車種の成分リストであるXMLを参照できます。例(フォーマットは無視してください。これは単なる説明です):
工場はこの成分リストを解析し、車のオブジェクトを作成します。部品がコード化され、成分リストがXMLで記述されていれば、新しい車種がシステムで利用できるようになります。
質問:
- このパターンは何と呼ばれていますか?それとも、複数のパターンを組み合わせただけですか?
- これはアンチパターンですか?
- これをUMLで表現するにはどうすればよいですか?パーツとベースカークラスのクラス図を作成できました。現在サポートされているそのクラスのインスタンスとそれらが持つパーツをどのように表示しますか?
前もって感謝します。不明な点がある場合はコメントしてください。詳細を修正/更新/提供します。
php - PHPでデータオブジェクトをFactoryに渡す
タスクの工場設計パターンを実装するのを手伝ってください。
スケジュールされたメッセージ送信 Web アプリケーションに取り組んでいます。ユーザーは自分のスケジュールされた送信計画を指定でき、必要なときにメッセージが配信されます。ユーザーは、月次、週次、日次の 3 つの繰り返しタイプから 1 つだけを選択できます。この 3 つの繰り返しタイプのアルゴリズムは似ています: 1) 送信日時を選択します (最初の配信の場合) 2) 繰り返しタイプに応じて「X か月/週/日ごとに繰り返す」オプションを選択します 3) タイプ (日付または日付) で終了を指定します発生制限)
毎週のスケジューラは少し異なります。もう 1 つの機能があります - 繰り返す曜日 (例: 月、金ごとに繰り返す)
セッター メソッド:
オブジェクトの構築に Factory パターンを使用したいのですが (これが最適ですか?)、このすべてのパラメーター ($type だけでなく、その他すべて) をオブジェクトの構築に渡す方法がわかりません。
それらを単一のデータ オブジェクトにラップして作成し、SchedulerFactory クラスでメソッド「setOptions」を作成し、このデータ オブジェクトを getter を介して「作成」構築メソッドに渡す必要がありますか?
Factory クラスでそのようなセッター メソッドを作成することは、Factory デザイン パターンの原則に違反しているのでしょうか。前にこのような例を見たことがなかったので、今は少し混乱しています。
まったく間違った方向に進んでいる場合は、お知らせください。このタスクにはどのソリューションをお勧めしますか?
前もって感謝します
c# - 環境 (web/windows) に基づくクラスのデータの抽象ストレージ
クラスがあり、その情報のストレージは、Web アプリケーションまたは Windows アプリケーションによって消費されるかどうかによって異なります。ファクトリ パターンを使用して正しいオブジェクトを渡すつもりでした。オブジェクトを再作成したくない場合は、呼び出し元がそのオブジェクトを適切に保存すると思います。プラットフォームに基づいてデータのストレージを抽象化することについて、他に提案がある人はいますか?
たとえば、Windows アプリによって呼び出されたときにデータをローカル変数として保存し (適切なサブクラスを送信)、Web アプリによって呼び出されたときにセッションに保存します。
attributes - Axis SecureSocketFactory - コンストラクター属性の設定
次のプロパティを使用して https 接続を確立するときに、Axis が使用するように顧客の SecureSocketFactory を設定しています。
このクラスが Axis によってインスタンス化されると、Hashtable (属性) を持つコンストラクターが呼び出されます。このテーブルにタイムアウト属性が設定されていることがわかります。これにさらに値を設定する方法はありますか? 静的またはシステム プロパティを使用して、グローバルではなく、インスタンスごとのシナリオでソケット ファクトリを構成できるようにしたいと考えています。
編集:これらの属性は実際には HttpSender (BasicHandler) オプションであることがわかりました。ただし、これらを動的に設定することはまだできません。
c# - 大規模な工場をよりクリーンな方法で処理する方法
私の開発チームは設計上の問題に遭遇しました。誰かがアーキテクチャのこの部分を少しきれいにするのを手伝ってくれることを願っています.
私のシステムには、250 のメンバーを持つ列挙型があります [1 つのメンバーは個別のドロップダウンを表します]。特定のウィンドウにドロップダウンを設定するために、そのフォームは必要なドロップダウンに関連する列挙メンバーを送信し、ドロップダウン情報が返されます。
つまり、たとえば 3 つのウィンドウがあるとします。ウィンドウ A にはドロップダウン X、Y、Z があります。ウィンドウ B にはドロップダウン W、X、Y があり、ウィンドウ C にはドロップダウン T、U、W があります。私の DropDownType 列挙は T、U、W、X、Y、Y で構成されます。 、および Z です。そのため、指定されたウィンドウについて、そのウィンドウのドロップ ダウンが与えられた場合、それらのドロップ ダウンに表示されるデータをクエリします。
私のアプリケーションは 250 を超える個別のドロップダウンで構成されているため、これは単純化された例です。
ご想像のとおり、各ドロップダウンのデータを返すように工場でセットアップされています。そして、このファクトリは、リクエストされたドロップダウンごとに呼び出されます。
この列挙型には非常に多くのメンバーが含まれているため、これをよりエレガントにコーディングする方法を知っている人はいますか? これをファクトリ メソッドに変換すると便利だと思いますか (ただし、ソース内の 250 の個別のファイルについて心配する必要があります...)。もっと便利な別のパターンはありますか?この巨大な switch ステートメントを持つだけで、手に負えなくなります。
どんな助けでも大歓迎です。前もって感謝します!
c# - ファクトリ メソッドで ac# オブジェクト初期化子を使用することは可能ですか?
静的ファクトリ メソッドを持つクラスがあります。ファクトリを呼び出してクラスのインスタンスを取得し、できれば c# オブジェクト初期化構文を使用して、追加の初期化を行います。
対
java - Java で 2 つの抽象ファクトリ パターンをリンクする
2 つの抽象ファクトリ パターンが必要な引用一致プログラムを作成しています。これらは 2 つのインターフェイスです。QuoteFactoryとModeFactory。ModeFactory はEasyModeとHardModeを切り替え、QuoteFactory はいくつかの異なるサブジェクト (つまり、 PoliticalQuotes、SportsQuotes ) の間で引用を選び出します。簡単に言えば、ユーザーはモードを選択します。EasyMode が選択された場合、ユーザーは引用を推測する必要がありますが、ユーザーが HardMode を選択した場合、ユーザーは誰が引用を言ったかを知らされてから推測する必要があるため、Quote の実装はモードと選択した引用符に応じて変化します。
これまでのところ、インターフェイスとして ModeFactory を作成し、それを EasyMode と HardMode に実装しましたが、別の抽象ファクトリ パターン (またはそれ以上) をこれらのモードに統合して、Quote を選択できるようにする必要があります。役立つ場合は、Quotes が定義されている Quote クラスも作成しました。
これらの抽象ファクトリの基本的な実装を考え出すのを手伝ってくれる人はいますか? これは私がこれまでに持っているものの概要ですが、なんとなく複雑になりすぎていると感じざるを得ません...
編集: 私が言いたいことを明確にするために: ユーザーがイージー モードを選択すると、引用の開始とその引用の作成者が提供されますが、ハード モードを選択すると、引用の開始のみが提供されます。例えば
イージーモード: 「…の力を感じた」ジョゼ・モウリーニョ
ハードモード 「……のパワーを感じた」
ハードモードでは、作成者は、ユーザーが引用の残りを推測するのを難しくすることはできません。また、これは学校の課題ではありません。私は Head First Design Patterns を読んでいて、学んだことをさまざまな状況に適用しようとしています (ピザの例の代わりに、QI (英国のテレビ番組) を読んだ後、Quote Guessing Game に取り組んでいます) ) 本。
c# - 工場クラスは知りすぎている
更新私の問題をよりよく説明するために、例を更新しました。特定のポイントが 1 つ欠けていることに気付きました。つまり、CreateLabel()
メソッドは常にラベル タイプを使用するため、ファクトリが作成するラベルのタイプを決定できるという事実です。つまり、返すラベルのタイプに応じて、多かれ少なかれ情報を取得する必要がある場合があります。
プリンターに送信されるラベルを表すオブジェクトを返すファクトリ クラスがあります。
ファクトリ クラスは次のようになります。
CustomLabel という名前の新しいラベル タイプを作成するとします。これを工場から返却したいのですが、追加のデータが必要です:
これは、ファクトリ メソッドを変更する必要があることを意味します。
ファクトリは最小公分母に対応する必要があるため、私はこれが好きではありませんが、同時に CustomLabel クラスはカスタム テキスト値を取得する必要があります。追加のファクトリ メソッドをオーバーライドとして提供することもできますが、CustomLabel には値が必要であるという事実を強制したいと考えています。そうしないと、空の文字列しか与えられません。
このシナリオを実装する正しい方法は何ですか?