問題タブ [factory-pattern]

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.

0 投票する
1 に答える
1022 参照

ruby-on-rails - Ruby-on-Rails でのモデルの継承、Factory パターン、および自己解析

私は、多くの異なるソースからフィードを取得し、それらのストリームを共通のモデル (この場合は特性) に保存するサイトで作業しています。FeedEntry クラス内のコードの例は次のとおりです。

確かに私は Java のバックグラウンドを持っており、Java では継承階層を設定し、FeedEntry の各サブクラスで parse メソッドを拡張して、各 FeedEntry がそれ自体を解析する方法を認識できるようにします。だから私の質問:
1)これはレールで実行可能な計画ですか?
2)もしそうなら、FeedEntry がどのサブクラスであるかを示す基本的に「タイプ」である列を含めるだけでしょうか?
3)そうでない場合、これを行うための最も乾燥した方法に関する提案はありますか?

ありがとう!

0 投票する
2 に答える
308 参照

java - これは工場パターンにとって完璧な問題ですか?

S3 または Web サーバーのハード ドライブにファイルを保存できるように、アプリケーションのファイル ストレージ部分をある程度柔軟に設計したいと考えています。

また、これをユーザーごとに柔軟にしたいので、ユーザー設定で、ファイルを S3 に保存するか、サーバーのファイル システムに保存するかを選択できます。

私はこのようなことを考えています:

次に、次のようなメソッドがあります。

これは理にかなっていますか?(私は ac# プログラマですが、これは Java で行います)

私はSpringを使っていますが、ユーザーごとに実装が変わるので、ここではDIは使わないと思います。

0 投票する
1 に答える
229 参照

castle-windsor - Castle Windsor の API を Factory に使用するより良い方法はありますか?

NInject や StructureMap などの他の IoC コンテナーがこれよりもはるかにクリーンであれば、それらを受け入れます。StructureMap がこれを簡素化する「コンテナ」を導入したと聞きましたが、おそらく?

タイトルの通りですが、何か良い方法はありませんか?これは、ファクトリを作成する必要があるオブジェクトを登録するためだけに、大量のコードのように見えます。

コンポーネントを追加する「非工場」の方法とは対照的に:

最初のものは複雑すぎるようです。

前もって感謝します!

0 投票する
5 に答える
50629 参照

design-patterns - ファクトリメソッドパターンの実際の例

ファクトリメソッドを読みました。インスタンス化をサブクラスに委任する方法を提供することを理解しています。しかし、実際のシナリオで考えられる使用法を理解できませんでした。

私が読んだものに関連付けることができるように、ファクトリメソッドパターンをどのように使用できるかを示す典型的な例を誰かに挙げてもらえますか?

ファクトリメソッドパターンが最良の解決策である問題ステートメントは、それを明確にするのに十分です。

0 投票する
2 に答える
141 参照

c# - Ideatryout: 型指定された Providerfactory

ここ数日、C#.NET (4.0RC) で新しいプロジェクトを開始することを考えています。プロジェクトの最終結果は、私が現在「ProviderFactory」と呼んでいるもの、いくつかのインターフェイス (または抽象クラス)、およびデフォルトの「ProviderType」または 2 つから構成されるクラス ライブラリになります。

まず第一に、.NET に既にあるものと衝突しないように、クラスの名前を変更する必要がある/決定する場合があります。第 2 に、ここで説明しているものは既に存在している可能性が高いため (私が知らないうちにネイティブに .NET 内にある可能性もあります)、その場合は、そのプロジェクトまたはチュートリアルへの単一のリンクをいただければ幸いです。

私が考えている機能は、単純なプロバイダーを提供できる単なるファクトリーではなく、あらゆる種類のプロバイダーを生成できるはずです。私はこのようなものを書くことができるようにしたい:

現在選択されている BlogProvider を返すか、存在しない場合は null を返す必要があります。また、たとえば、1 つのタイプの利用可能なすべてのプロバイダーのリストを提供できるようにしたい

また、ブログ プロバイダ (「ODBCBlogProvider」、「XMLBlogProvider」など) を含む文字列の配列を返す必要があります。たとえば、次のように、現在のプロバイダーを設定できるようにする必要もあります。

これにより、現在の BlogProvider が ODBCBlogProvider になるため、次に ProviderFactory.GetProvider() を呼び出すと、ODBCBlogProvider のインスタンスが返されます (これにより、BlogProvider 基本クラスを拡張する必要があります)。

また、すべての ProviderType (または必要に応じて ProviderBase) には、その ProviderType に固有の ProviderTypeName (BlogProvider) と ProviderTypeDisplayName (「ブログ」または「ブログ プロバイダー」) が必要であり、そのプロバイダーを拡張するすべての Provider には、 ProviderName (ODBCBlogProvider) と ProviderDisplayName (「ODBC」または「ODBC ブログ」など)。ProviderName と ProviderTypeName は、簡単にするために、リフレクションによって取得されたクラス名が存在する可能性があります。

これはおそらく、次のような ProviderBase のインターフェイスが必要であることを意味します。

また、BlogProvider については、これら 2 つのメンバーを実装し、実際の BlogProvider がオーバーライドするメソッドを作成する抽象クラスを作成する必要があります。

次に、コードのどこかで次のようなものを実行する必要がありました

または、さらに良いオプションは、次のような属性を使用できるようにすることです。

基本クラスにメンバーを設定する必要がないため、このアプローチで抽象クラスを使用する必要はないと思います。また、ProviderBase インターフェースの必要性もなくなりました。理想的な原因は、ProviderFactory が ProviderAttribute を含むすべてのクラス/インターフェイスを見つけることができ、ODBCBlogProvider が BlogProvider を実装するだけでよい場合ですが、これを行う方法がわかりません。 providers と providertypes はどちらも外部アセンブリに使用できます。

ProviderFactory のもう 1 つの要件は、ステートレス環境とそれが維持される環境の両方で機能する必要があることです。したがって、設定をいくつかの構成ファイル/ストリーム/データベースに保存できる必要があります (そのようなものは、'これは、初期化時にこれから変更およびロードするときに重要ですが、これはオプションである必要があります。したがって、Web 上でも機能します (自分のマシンでブログを作成しても意味がありません)。

もう 1 つの要件は、プロバイダーが他のプロバイダーの動作を必要とする可能性があることです。たとえば、AudiEngine は AudiCar でしか動作しませんが、AudiCar は BmwEngine で完全に動作します。

また(そして、どこに置くべきかまだわかりません。おそらくプロバイダークラス自体のオプションの属性です)すべてのプロバイダーには、シングルトンであるかどうかのオプションが必要です。

今のところ思いつくのはそれだけです。これがどのように実装されるべきか、またはすでに実装されている天気についての意見は大歓迎です。まだコードを書いていないので、何でも変更できます。これはすべて私が今考えていることです。

0 投票する
5 に答える
420 参照

c++ - ファクトリパターンに関する質問

基本クラスBのオブジェクトを構築するためのファクトリクラスがあります。このファクトリを使用するオブジェクト(D)は、実際のタイプを表す文字列のリストを受け取ります。正しい実装は何ですか:

  1. ファクトリは列挙型を受け取り(そしてCreate関数内でスイッチを使用し)、Dは文字列を列挙型に変換する責任があります。
  2. ファクトリは文字列を受け取り、有効な文字列のセットとの一致をチェックします(ifs'を使用)
  3. 私が考えていなかった他の実装。
0 投票する
9 に答える
58713 参照

wcf - wcf サービスのコンストラクターに値を渡すにはどうすればよいですか?

サービスを実装するクラスのコンストラクターに値を渡したいと思います。

ただし、ServiceHost では、コンストラクターに渡す引数ではなく、作成する型の名前のみを渡すことができます。

サービス オブジェクトを作成するファクトリを渡すことができるようにしたいと考えています。

私がこれまでに見つけたもの:

0 投票する
9 に答える
2252 参照

language-agnostic - 静的なCreateメソッドが存在するのはなぜですか?

なぜ静的メソッドが存在するのか疑問に思いました。Create

たとえば、なぜこのコードを使用するのですか?

このコードについて:

どちらか一方を使用する理由がわかりません。また、この構成を使用するクラス間の関係も見つかりません。

誰かがこれに光を当てることができますか?

0 投票する
2 に答える
1168 参照

vb.net - ジェネリックコンストラクターを作成するにはどうすればよいですか? (つまり、BaseClass.FromXml( )

これをどう説明したらよいかわかりませんが、FromXml という共有 (ファクトリ) 関数を含む基本クラスを作成しようとしています。この関数で適切な型のオブジェクトをインスタンス化し、XmlDocument を介して入力する必要があります。

たとえば、次のようなものがあるとします。

私はこのようなことをしたいと思います:

これは可能ですか?