問題タブ [factory-method]
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.
python - パラメータとしてクラス属性を取るメソッドファクトリ
パラメータ化されたオブジェクト属性を何らかのロジックでラップする「メソッド ファクトリ関数」を作成すると便利だと思います。
例えば:
属性をmake_fisher
文字列として渡す必要がありますか、またはこれを行うためのより良い方法はありますか?
実際の属性を渡して使用すると、 のインスタンスがtwo
属性オブジェクトへの同じ参照を引き続き使用するため、ポリモーフィズムが壊れます。
IE
属性を参照するために文字列を使用する必要があるのは少し弱いようですが、これを行う別の方法は見当たりません。ある?
c++ - ファクトリメソッドのanti-if実装
私はC++プロジェクトにファクトリデザインパターンを適用しています。以下に、私がどのように行っているかを示します。「anti-if」キャンペーンに従ってコードを改善しようとしているので、私が持っているifステートメントを削除したいと思います。どうすればいいですか?
文字列をキーとして、コンストラクター(またはオブジェクトを作成するための何か)を使用してマップを作成することを想像します。その後、タイプ(タイプは文字列)を使用してマップからコンストラクターを取得し、ifなしでオブジェクトを作成できます。(私は少しパラノイアになっていることは知っていますが、それができるかどうか知りたいです。)
java - 静的ファクトリクラスを使用してGUIコンポーネントを生成する-必要なリスナーをどこにどのように追加しますか?
ファクトリクラスとメソッドを使用してGUIコンポーネントを生成したいのですが、さまざまなリスナーを宣言してコンポーネントに追加する方法とクラスがわかりません。
以下にリストされているような単純なファクトリクラスがある場合、呼び出し元のクラスに返される前に、ボタンにActionListenerを追加する必要があります。答えが「はい」の場合、リスナーを追加するにはどうすればよいですか?
getJButton()メソッドを使用してGUIに5つのボタンを追加したいとします。どのボタンがクリックされたかを認識できるように、ActionListenerをどのようにコーディングしますか?
または、リスナーを呼び出し元のクラスに追加する必要がありますか?
私は以下を試しました
エラーが発生しました:
ここでは「void」タイプは許可されていません。
design-patterns - 抽象ファクトリー、ファクトリーメソッド、ビルダー
この質問はだまされているように思えるかもしれませんが、ご容赦ください。関連する投稿 (およびGOFの本) を読んだことを約束します。
すべてを読んだ後でも、Abstract Factory、Factory Method、または Builder をいつ使用するかはまだ明確ではありません。たとえば、ビルダーが最もよく取り組む問題の簡単な例を見た後、最終的には沈み込むと思います。たとえば、抽象的なファクトリを使用するのは明らかにばかげています。
明確に 1 つのパターンを使用し、他のパターンを使用しない簡単な例を挙げていただけますか?
例が単純すぎると意見の問題になる可能性があることは理解していますが、できる人がいるなら、その人がSOにいることを願っています。
ありがとう。
vb.net - 誰かがこのVB.Netコードの問題を見つけることができますか?
私はVB.Netでいくつかのコードを書いていますが、それを同僚に(もう少し慣れているとは言わないまでも)さまざまなデザインパターンでデモンストレーションしたいと思っています。FactoryMethodPatternに問題があります。
これが私のコードです:
これをコンパイルしようとすると、CarFactory.CreateCarでエラー(BC30311)が発生し、Fiesta、Mondeo、FocusをCarに変換できないと表示されます。問題が何であるかわかりません-それらはすべてCarのサブクラスです。
間違いなく、私は単純なものを見落としています。誰かがそれを見つけることができますか?
乾杯、
マーティン。
ruby - Rubyで「クラスクラスタ」(具象サブクラスのインスタンスを持つファクトリクラス)を作成するには?
初期化パラメータに応じて具体的なインスタンスを作成する抽象クラスを作成したいと思います。例:
次に、FooSomething < SomethingGeneric、BarSomething < SomethingGeneric などが必要です。それから私がするとき:
FooSomething インスタンスを取得します。
ここでの問題は、「新しい」方法です。私はSomethingGeneric.newを定義しましたが、FooSomethingとBarSomethingはSomethingGenericのサブクラスであるため、ここでは間違った引数で呼び出される「新しい」メソッドを継承しています:
解決策の 1 つは、ファクトリ メソッド「new」に別の名前を使用することです。ただし、利便性にこだわり、「new」という名前の抽象スーパークラス ファクトリ メソッドを維持したいと考えています。
この問題を解決する最もクリーンで正しい方法は何ですか?
java - Java パラメータ化されたジェネリック静的ファクトリ
パラメータ化された型としてインターフェイスを使用し、この特定のインターフェイスの実装クラスを返す静的ファクトリ メソッド/クラスを Java で作成することは可能ですか?
ジェネリックに関する私の知識は限られていますが、私がやりたいことは次のとおりです。
指定したツール インターフェイスから拡張される getInstance() メソッドにインターフェイス「タイプ」のみを挿入するようにクライアント コードを制限したいと考えています。このようにして、挿入されたツールタイプが正当なツールであることを確実に知ることができます。
クライアント コードは次のようになります。
ファクトリは、ファクトリから要求される前に定義されたインターフェイスのタイプをオンにする必要があります (null かどうかは気にしないでください)。これが私が書いた方法ではうまくいかないことはわかっていますが、読者の 1 人が私が達成したいことを知っていることを願っています。
getInstance メソッドの戻り値の型は受信パラメーターと同じであるため、Parser インターフェイスが渡されると、Parser p = new ParserImpl(); も返されます。p を返します。
助けてくれてありがとう。
design-patterns - デザインパターン:抽象ファクトリとファクトリメソッド
注:質問は投稿の最後にあります。
抽象ファクトリとファクトリメソッドに関する他のスタックオーバーフロースレッドを読みました。それぞれのパターンの意図を理解しています。しかし、その定義ははっきりしていません。
ファクトリメソッドは、オブジェクトを作成するためのインターフェイスを定義しますが、サブクラスがインスタンス化するインターフェイスを決定できるようにします。ファクトリメソッドを使用すると、クラスはインスタンス化をサブクラスに延期できます。
対照的に、Abstract Factoryは、具体的なクラスを指定せずに、関連オブジェクトまたは依存オブジェクトのファミリーを作成するためのインターフェースを提供します。
抽象ファクトリはファクトリメソッドと非常によく似ています。私の主張を説明するために、いくつかのUMLクラスを作成しました。
ノート:
- この図はwww.yuml.comからのものであるため、完全に方向付けられているわけではありません。しかし、それは無料のサービスです:)。
- ダイアグラムは完全ではない可能性があります。私はまだGoFデザインパターンを学んでいます。
ファクトリメソッド:
抽象ファクトリ(メンバーは1つのみ):
抽象ファクトリ(より多くのメンバー):
質問:
- Abstract Factoryにクリエーターと製品が1つしかない場合でも、Abstract Factoryパターンですか?(家族を作成するためのインターフェース)
- ファクトリメソッドの具象作成者はインターフェイスから作成できますか、それともクラスから作成する必要がありますか?(クラスはインスタンス化をサブクラスに延期します)
- 抽象ファクトリが1つの作成者と1つの製品しか持てない場合、抽象ファクトリとファクトリメソッドの唯一の違いは、前者の作成者がインターフェイスであり、後者の作成者がクラスであるということですか?
design-patterns - ファクトリ パターンのパラメータ化されたファクトリ - 他に方法はありますか?
私はGo4デザインパターンの本を読んでいて、現在ファクトリーメソッドパターンを見ています。この本はPg:110に言及しています
「ファクトリ パターンの別のバリエーションでは、ファクトリ メソッドで複数の種類の製品を作成できます。ファクトリ メソッドは、作成するオブジェクトの種類を識別するパラメータを取ります」
では、工場は常に複数の種類の製品を作成するのではないでしょうか? また、作成する製品の種類を決定するために、パラメーターを送信する必要は常にあるのではないですか? つまり、パラメーターを渡さない場合、ファクトリはどのオブジェクトを作成するかをどのように決定するのでしょうか? 別のバリエーションとはどういう意味ですか? ここでポイントがありませんか?
c#-4.0 - XamlWriterのC#オブジェクトXamlファクトリメソッド
私のクラスは、プロパティ(public Image myImage
)として画像を使用しています。このクラスがシリアル化されている場合(XamlWriter
)は正常に機能しますが、読み戻すと例外が発生します。
'タイプ'System.Drawing.Bitmap'に一致するコンストラクターが見つかりません。ArgumentsまたはFactoryMethodディレクティブを使用して、このタイプを作成できます。行番号「5」および行位置「8」。
明らかに、引数としてColorPaletteを使用したBitmapにはコンストラクターがありません。
なんとかしてビットビットを作成するファクトリメソッドを指定できることを理解しています。http://www.wpftutorial.net/XAML2009.htmlなど、このためのディレクティブに関する記事もいくつか見つかりました。
しかし、私は専門家でXaml
はなく、属性でメソッドを定義/宣言する方法と場所を理解していません。残念ながら、この例も見つかりません。
私はいくつかのようなものを期待しています
しかし、実際には何も見つかりませんでした。あなたが知っているアイデア/例はありますか?