問題タブ [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 投票する
2 に答える
575 参照

iphone - ココア(iPhone)でコアデータアクセス用のデータファクトリを作成する方法の例?

私はゆっくりとiPhoneの開発を学んでいて、自分がやりたいことを正しい方法で行う方法がわからない壁にぶつかり続けているようです:(

基本的に、データレイヤーとのすべての相互作用を処理するクラスが必要です。たとえば、データストアからオブジェクトのリストの可変配列を取得します。

これは、ガベージコレクターがある他の言語では非常に簡単ですが、iPhoneのObjective-Cでは、何をすべきかわかりません。

これは、作成していたDataFactoryクラスのメソッドの例です。いつリリースするかわからない場所についてのコメントに注意してください。

私のコメントに関連する発信コード:

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

php - PHPのファクトリクラス、__constructはありませんか? どのメソッド名を使用しますか?

PHPで作成しているファクトリクラスがあります。各インスタンスは、データベース テーブルの行を表します。

数十のデータベース行を扱うので、各インスタンスにインスタンス化の選択をさせるのはばかげています。そのため、多くの行を返すデータベース クエリと組み合わせて使用​​するために、オブジェクトに値をダンプする方法があります。

しかし、ときどき、クエリ内のすべての値をオブジェクトに検索させたいこともあります。そこで、主キーを引数として取り、データベース クエリから値を検索する別のメソッドを作成します。

したがって、これら 2 つの方法の間では、実際には方法は必要ないように思われ__constructます。

このタイプのパターンに「工場」よりも具体的な名前はありますか? オブジェクトを構築するためのこれら 2 つの異なるメソッドを何と呼べばよいですか? これらのメソッドに一般的に使用される名前はありますか?

0 投票する
4 に答える
1741 参照

c# - C# ジェネリックと抽象ファクトリ パターン - または似たようなことを行う何らかの方法

アプリケーション用に一種の拡張可能なデータ レイヤーを作成しようとしています。「リポジトリ」の 1 つは、抽象ストア クラスのインメモリ実装です。

「StorableEntity」抽象クラスは次のとおりです。

次のような「InMemoryStore」と呼ばれる Store の具体的なクラスがあります。

さて、ここでの「U」の型は、string、int、Guid などの可能性があります... (ほとんどの場合、int である可能性があります)

ここでの私の考えは、次のような IUIDGenerator のようなものを作成することです:

上記の「InMemoryStore」では、IUIDGenerator のインスタンスを作成し、ストア ディクショナリのキー コレクションを渡し、「Create」メソッドを呼び出して、必要な型の一意の識別子を返します。

たとえば、このような IntUIDGenerator クラスを持つことができます (これは、辞書キーに既に含まれている数値に基づいて、一種の増分数値ジェネレーターとして機能します)

実際の質問: 私がしなければならないことは、InMemoryStore 内で、U の型 (識別子の型) を識別し、必要な IUIDGenerator の具体的な実装を動的に選択できるようにすることです - どうすればこれを行うことができますか?

クラス ファクトリ パターンのタイプを持つことを考えました - 利用可能なすべての UIDGenerators を辞書にロードします...しかし、それらはすべて異なるタイプを持つことができますか?

これを回避するより良い方法はありますか?

また、質問のタイトルが少しずれている可能性があることも認識しています。より良い提案があれば、お気軽にコメントしてください。変更します。

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

design-patterns - コンストラクターがサブクラス化されたオブジェクトを返すようにする方法

オブジェクト指向プログラミング パターンに関する本を読みました。これは、オブジェクトの静的ファクトリ メソッドを呼び出すことができる Factory パターンを記述しており、オブジェクトは期待される型の新しいオブジェクトを返しますが、適切にサブクラス化されます。

私の質問は、クラスのコンストラクターによってこの機能を提供できますか? もしそうなら、どのように?なぜではないのですか?サブクラス PoliceOfficer、NativeAmerican、Cowboy、Biker、ConstructionWorker、および Sailor を持つ VillagePerson というクラスがあるとします。コンストラクターは、人物のテキスト文字列の説明を受け取り、それを解析して、必要な人物の特定のタイプを返します。これは静的ファクトリ メソッドでのみ可能ですか?

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

design-patterns - 条件付きロジックに基づくオブジェクトのインスタンス化を回避するファクトリ メソッド パターン

以下のような、条件付きロジックに基づいてオブジェクトをインスタンス化する必要があるシナリオでは、ファクトリ メソッド パターンを使用すると、if/elseif 条件の数が原因でクライアント コードが乱雑になるのを防ぐことができます (これは、条件が増えるとメンテナンスの悪夢にもなります)。ロジックのバリエーションが異なるため、製品を作成する必要があります)。

または、救助に来る可能性のある他のデザインパターンはありますか?

0 投票する
4 に答える
9864 参照

c# - ファクトリ メソッドを使用してオブジェクトを作成する必要がある理由

重複の可能性:
工場パターン。ファクトリ メソッドを使用する場合
静的 Create メソッドが存在するのはなぜですか?

Factory Design Patternとは何かは知っていますが。しかし、私はそれを使用する利点が何であるかを理解できません。Factory Design Pattern を使用してオブジェクトを作成する必要があるのはなぜですか。

0 投票する
7 に答える
21975 参照

c# - ファクトリ パターンだが、オブジェクト パラメータを使用

次の古典的なファクトリ パターンを使用します。

Concrete Pizzas の 1 つ (または多数) が、構築時に具体的な実装に固有のパラメーターを必要とする場合はどうなるでしょうか。たとえば、HamAndMushroom ファクトリが MushroomType というパラメーターを必要とし、このパラメーターがオブジェクトのインスタンス化に必要であるとしましょう。

0 投票する
3 に答える
8892 参照

ruby - インスタンス化時にクラスをサブクラスに変換する

Mediawiki APIを照会するためのフレームワークを作成しています。私はPageウィキの記事を表すクラスを持っています。またより具体的なメソッド (カテゴリ内のメンバーの数を数えることができるなど) を持つCategoryクラスも持っています。インスタンス化されたオブジェクトが実際に Mediawiki カテゴリ ページを表しているかどうかを判断するには、API にクエリを実行して記事の名前空間を判断します。 PagePage#category?Page

私がやりたいことは、フレームワークのユーザーが Page オブジェクト (つまり ) を使用して Mediawiki カテゴリをインスタンス化しようとしているかどうかを検出できるようにすることです。そうであれば、コンストラクターから直接、オブジェクトではなくオブジェクトをPage.new("Category:My Category")インスタンス化します。CategoryPagePage

Rails の単一テーブルの継承を連想させるので、これは可能であるように思えますが、それを機能させる方法がわかりません。

0 投票する
4 に答える
3805 参照

java - log4jで使用されるパターンは何ですか

log4j ライブラリで使用される設計パターンを理解する必要がありました。さまざまなクラスのロガーを提供するので、それはファクトリですか?

これらに関するこれ以上の入力/ポインタは大歓迎です..

0 投票する
3 に答える
632 参照

java - デザインパターン名:工場ですか?

次のクラスは、実際のユースケースに似たものを示しています。同じスレッドに対して常に同じインスタンスを返します。

どのようにそれを呼びますか?それは「工場」ですか?「バリューホルダー」?「ThreadLocalStore」?