問題タブ [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.
c# - C# のファクトリー モデル
すべて同じ方法で作成された多数の MDI 子ノードがあり、冗長なコードを減らすために、メソッドを呼び出して文字列 (子ノードの名前) を渡し、ノードを作成し、親に追加します。
クラス名の文字列からクラスを作成する以外はすべてできますが、どうすればよいですか?
domain-driven-design - Merging two domain objects
In the project I'm working on, we have an aggregate domain object. The factory object handles the creation of the unique id for the object. But there is a separate import process which creates the same object initially without the id. To add the imported object to the system, we are now forced to do a field by field copy to a new object since we can't just set the id for it for obvious reasons. Could anyone suggest a better way of handling this situation?
python - Python/他の言語でmeta-meta-classes/meta-meta-meta-classesを使用している人はいますか?
最近、Pythonでメタクラスを発見しました。
基本的に、Pythonのメタクラスは、クラスを作成するクラスです。これを実行する理由はたくさんあります。たとえば、あらゆる種類のクラスの初期化です。工場でのクラスの登録、属性の複雑な検証、継承の仕組みの変更など。これらすべてが可能になるだけでなく、簡単になります。
しかし、Pythonでは、メタクラスもプレーンクラスです。それで、私は抽象化が有用にもっと高くなることができるかどうか疑問に思い始めました、そしてそれが可能であるように私には思えます:
- メタクラスは、パターン内の役割に対応するか、その役割を実装します(GOFパターン言語の場合と同様)。
- メタメタクラスはパターン自体です(単一のクラスではなく、抽象的な役割を表すクラスのタプルを作成できる場合)
- meta-meta-metaclassはパターンファクトリであり、GOFパターングループ(作成、構造、動作など)に対応します。特定のタイプの問題のケースを記述でき、それを解決する一連のクラスを提供するファクトリ。
- meta-meta-meta-metaclass(私が知る限り)は、パターンファクトリファクトリです。これは、問題のタイプを説明できるファクトリであり、パターンファクトリに問い合わせることができます。
私はこれについてオンラインでいくつかのことを見つけましたが、ほとんどの場合あまり役に立ちません。1つの問題は、言語が異なればメタクラスの定義もわずかに異なることです。
他の誰かがpython/elsewhereでこのようなメタクラスを使用したり、これが実際に使用されているのを見たり、考えたりしたことがありますか?他の言語の類似物は何ですか?たとえば、C ++では、テンプレートの再帰はどのくらい深くなることができますか?
さらに調べてみたいと思います。
language-agnostic - ゲームオブジェクト/キャラクターを作成するためのファクトリメソッド/パターンを使用する良い例はありますか?
NPC、弾丸、パワーアップなどのゲーム オブジェクトを作成し、特定のクラスへの相互依存の量を削減するクリーンな方法が必要です。これがファクトリーパターンの使用目的だと思いますか?
実際のゲームからの優れた実装を楽しみにしています。
私はデザイン パターンの専門家ではないので、理解できない場合は使用しません。そのためにデザインパターンを使用したくありません。このパターンがこの問題を解決する正しい方法であるかどうかを理解したいだけです。
dependency-injection - ウィンザー城: ファクトリで作成されたオブジェクトがファクトリを参照する場合に、ファクトリで作成されたオブジェクトの循環参照を防ぐ方法
IoC コンテナーとしてウィンザー城を使用していますが、ちょっとした問題が発生しました。これはコードで最もよく説明されているので、試してみます。特定のインターフェイスの実装を提供するファクトリ クラスがあります。
ファクトリ クラスの実装は次のようになりますが、これが正しい方法かどうかはわかりません。IObjectCreator defaultCreator;
これで問題なく動作しますが、IObjectCreator インスタンスで特定の IObjectCreator を使用して子オブジェクトを作成する場合は、ObjectCreatorFactory を呼び出します。これにより、明らかに循環参照が発生します。
これはうまくいきません。作成されたオブジェクトが子オブジェクト作成者のファクトリを参照しているこのシナリオでは、どうすればよいでしょうか?
design-patterns - オブジェクトを作成するためにコンストラクターの代わりにファクトリを使用するためのしきい値は何ですか?
オブジェクトを作成するためにコンストラクターの代わりにファクトリを使用するためのしきい値は何ですか?
- あなたはいつも工場を使います。
- ヌルのチェック以外の不変チェックがある場合にのみ、ファクトリを使用します。
- 常にコンストラクターを使用します
- あなたはめったに工場を使いません...それらの場合は何ですか?
長所と短所
更新:プロジェクトにドメイン駆動設計のファクトリパターンを適用しています。また、ファクトリを作成する理由の1つは、ドメインモデルのノイズを減らすことです。
ありがとう
c# - C#のファクトリパターン:オブジェクトインスタンスがファクトリクラスによってのみ作成されるようにする方法は?
最近、コードの一部を保護することを考えています。オブジェクトを直接作成できないようにする方法に興味がありますが、ファクトリ クラスのメソッドを介してのみ作成できます。いくつかの「ビジネス オブジェクト」クラスがあり、このクラスのすべてのインスタンスが有効な内部状態を持つようにしたいとします。これを実現するには、オブジェクトを作成する前に、おそらくそのコンストラクターでいくつかのチェックを実行する必要があります。このチェックをビジネス ロジックの一部にすることを決定するまでは、これで問題ありません。では、ビジネス ロジック クラスの何らかのメソッドを介してのみビジネス オブジェクトを作成可能にし、直接は作成できないようにするにはどうすればよいでしょうか。C++ の古き良き "friend" キーワードを使用したいという最初の自然な欲求は、C# では不十分です。だから、他のオプションが必要です...
いくつかの例を試してみましょう:
入力をチェックせずに MyBusinessObjectClass インスタンスを直接作成できることを思い出すまでは、問題ありません。その技術的な可能性を完全に排除したいと思います。
それで、コミュニティはこれについてどう思いますか?
c++ - ファクトリ オブジェクトとファクトリ関数
いくつかの派生クラスを持つ ABC があります。これらの派生クラスを作成するには、ファクトリ パターンを使用します。
.h ファイル:
.cpp ファイル:
無料の関数を使用するだけで、これに利点はありますか:
.h ファイル:
.cpp ファイル:
また、依存性注入には抽象ファクトリ パターンを使用します。ABC に基づく継承階層を使用する場合があります。
関数ポインタよりもこれを使用する利点はありますか:
boost::bind/lambda を使用すると、コードがより構成可能になるようです。必要に応じて、実際のファクトリ オブジェクトをラップできます。パフォーマンスがわずかに低下する可能性があることがわかりますが、これは起動時にのみ呼び出されるため、心配する必要があります。