問題タブ [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.
java - 単純なJava「サービスプロバイダーフレームワーク」?
効果的なJavaの第2章で説明されているように、「サービスプロバイダーフレームワーク」を参照しString
ます。これは、実行時にいくつかのクラスの1つをインスタンス化する必要がある、問題を処理するための正確な方法のようです。サービス、およびConfiguration
オブジェクト(基本的にはXMLスニペット):
しかし、どうすれば個々のサービスプロバイダー(たとえば、多数のデフォルトプロバイダーといくつかのカスタムプロバイダー)に自分自身を登録させることができますか?
たとえば、カスタムクラスMyFooAlgorithmとMyFooAlgorithmProviderを記述してFooAlgorithmを実装し、それらをjarに配布する場合、registerProviderを自動的に呼び出す方法はありますか、またはアルゴリズムを使用するクライアントプログラムはFooAlgorithmRegistry.registerProvider( )使用したいクラスごとに?
spring - スプリングのデフォルト コンポーネント ファクトリの拡張
これは短いものです。Spring が Bean をインスタンス化する方法を変更したいと考えています (この場合、単純にインスタンス化するのではなく、プロキシを作成することによって)。
Jdk Dynamic Proxies や cglib を使用してプロキシを生成することはできません (この場合は、Spring aop を使用できます)。
私の意見では、これを行う最善の方法は、Spring の Bean ファクトリを拡張する (そして Spring に自分のファクトリを使用するように指示する) ことですが、Google でその方法を見つけることができません。
これについて何か考えはありますか?
編集:
実際、これを行う最も標準的な方法は、BeanPostProcessor( http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans/factory/config/BeanPostProcessor.htmlを使用することです。 )、その PostProcessor がプロキシで Bean をラップするようにします。
ここでより良い解決策にたどり着けない場合 (そして、これは貴重な質問であると判断した場合)、これを回答として投稿します。
java - インターフェイスを実装するクラスでシングルトン パターンを強制する
例を挙げて質問をよりよく説明します。データへのアクセスに使用できるインターフェイス モデルがあります。XMl 、 txt 形式など、さまざまな形式でデータを表すことができるモデルのさまざまな実装が存在する可能性があります。モデルは形式には関係ありません。そのような実装の 1 つがmyxmlModelだとしましょう。
ここで、 myxmlModelとModelの他のすべての実装をシングルトン パターンに従うように強制したいと考えています。通常の方法は、myxmlModelsコンストラクターをプライベートにし、myModel クラスのインスタンスを返す静的ファクトリ メソッドを提供することです。しかし、問題は、インターフェイスが静的メソッド定義を持つことができないことです。その結果、 Modelのすべての実装で特定の Factory メソッド定義を強制することはできません。したがって、ある実装はgetObject()を提供することで終了し、別の実装は get NewModel() を提供する場合があります。.
回避策の 1 つは、 myxmlModel のコンストラクターへのパッケージ アクセスを許可し、 myxmlModelオブジェクトを作成して後で使用するためにキャッシュする Factory クラスを作成することです。
同じ機能を達成するためのより良い方法があるかどうか疑問に思っていました。
c# - メソッドに型を渡す方法 - 型引数とジェネリック
ファクトリのようなオブジェクトのメソッドがあります。タイプを指定すると、インスタンスが作成され、他にもいくつかの処理が行われます。(私の意見では)それを行うためのエレガントな方法は次のとおりです。
しかし、これは、これは悪いスタイルだと言う FxCop を混乱させます。「CA1004: ジェネリック メソッドは型パラメーターを提供する必要があります」という警告が表示されます。推論などを使用しないことについての何か。だから、私が考えることができる唯一の他の方法は、次のようなものです:
多くの場合、これは最初の方法よりも劣っていると思いますが、スタイル ルール... 警告に関する MSDN の記事では、それを抑制する理由はないとさえ述べています。
結局、この警告を抑制して正しくやっていますか?
perl - PerlとMooseでファクトリをコーディングするにはどうすればよいですか?
Moose
Perlを使用し、受信データに基づいてクラスをインスタンス化するためのより簡単な、またはより良い(=>保守が容易な)方法はありますか?
次のコードは、私が取り組んでいるプロジェクトから抜粋したサンプルです。
編集:これは、DBIを呼び出すときに発生することとほぼ同じであることに気づきました。渡すパラメータに応じて、(ほとんど)一貫性のあるインターフェイスを維持しながら、まったく異なるコードを使用します
c# - C# - インタビューのためのプログラマー チャレンジ - インターフェイスとパターンへのプログラミング
中級および中級レベルの開発者がインターフェイス (単純なファクトリ パターンなど) にプログラムする機会を与えられた場合、彼らがそれを行うかどうかを調べるために投げるのに適した簡単な問題は何ですか?
database - 接続プーリングを備えた優れたデータベース(ファクトリ)クラスはどこにありますか?
データベースファクトリの作成方法や接続プールの処理方法に関する多くの情報を見つけましたが、完全な解決策はどこにも見つかりませんでした。
私はいつも自分のソリューションを使用してきましたが、完全ではないか、改善できると思います。
私がネット上で見つけることができるあなたの誰かが使用するいくつかの良いデザインのクラスはありますか?
ありがとう ;-)
ruby-on-rails - factory_girl の関連付けを使用した DRYer テスト
ファクトリがその関連付けに事前構築済みのモデル インスタンスを使用するようにするためのより良い方法を提案できる人はいますか? たとえば、次のように Message ファクトリの子を定義して、 への呼び出し
で?Factory(:my_message)
を置き換えることができる
ようにします。Factory(:message,:sender=>@me)
場合によっては、セットアップ ハッシュがこの不自然な例よりも複雑であるか、非常に多くのテストで繰り返されるため、ファクトリにプッシュした方がよいように思われます。
私が考えることができる 1 つの代替手段は、 などのテスト ヘルパー メソッドを定義するcreate_message_owned_by(@me)
ことですが、factory_girl 自体に方法があることを願っています。
factory_girl 工場:
MessagesControllerTest の抜粋 (shoulda を使用):
wcf - インターフェイスに対してコーディングする場合、ファクトリ、または WCF でのオブジェクトのインスタンス化のための依存性注入?
クライアントが Windows フォーム アプリであり、サーバーが Windows サービスでホストされる WCF サービスであるクライアント/サーバー アプリケーションを作成しています。アプリケーションの両側を制御していることに注意してください。
インターフェイスに対するコーディングの実践を実装しようとしています。つまり、クライアント アプリケーションによって参照される共有アセンブリがあります。このプロジェクトには、クライアントに公開される WCF ServiceContracts とインターフェイスが含まれています。インターフェイスのみをクライアントに公開しようとしているため、特定の実装ではなく、コントラクトのみに依存します。これを行う理由の 1 つは、クライアントを再コンパイルおよび再デプロイすることなく、いつでもサービスを実装してドメインを変更できるようにするためです。この場合、インターフェース/コントラクトは変更されません。WCF サービスを再コンパイルして再デプロイするだけです。
私が今直面している設計上の問題は次のとおりです。たとえば、クライアントが具体的な実装ICustomer
について知らない場合、クライアントでオブジェクトの新しいインスタンスを作成するにはどうすればよいですか? Customer
DB に保存する新しい顧客を作成する必要があります。
依存性注入または Factory クラスを使用して新しいオブジェクトをインスタンス化する必要がありますか? それとも、クライアントが具体的な実装の新しいインスタンスを作成できるようにする必要がありますか?
私は TDD を行っていません。通常は、ICustomer
またはその他の公開されたインターフェイスを 1 つだけ実装します。
singleton - 「Singleton」ファクトリー、いいですか悪いですか?
私は(抽象的な)工場をたくさん持っていますが、それらは通常シングルトンとして実装されています。
通常、これらのファクトリを使用したり知ったりすることに実際に関係のないレイヤーにそれらを渡す必要がないという利便性のためです。
ほとんどの場合、起動時にどのファクトリ実装のコード プログラムの残りの部分を決定する必要があるかだけです。
それは例えばのように見えます
これについて何かがにおいがしますが、私にはわかりません-それはおそらくシングルトンよりも使い古されたグローバルです。私のプログラムはそれ以上必要としませんが、ColumnCalculations を作成するファクトリが 1 つだけ存在する必要があるというわけではありません。
これはベストプラクティスと見なされますか? これらを(半)グローバル AppContext クラスに詰め込む必要がありますか?他に何か(私はまだ大きなIoCコンテナ、またはspring.netに切り替える準備ができていません)?