問題タブ [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.
wcf - wcf と Factory\plugin パターン
アーキテクチャに関する質問があります :) 私の新しいプロジェクトでは、「driverName」文字列入力パラメーターを持つ wcf サービスを開発しています。その名前に対して、サービスは「IDriver インターフェイス」を実装する「driverType」クラスを作成する必要があります。メソッドを実行します。アプリケーションは拡張可能であり、実行時に他のドライバー実装を使用して他のアセンブリを配置したいと考えています。
私はwcfについてよく知りませんが、新しいwcf4を頭の中で読んで、次の2つの可能な実装を考えました:
1)一般的なwcfで「ファクトリーパターン」を使用する(私の質問は、私の目的に使用できるフレームワークはありますか?)
2) 多くの wcf、1 つのドライバーごとに 1 つ、および WCF4 の発見可能な機能を使用します (そして私の質問は、発見可能なものは私を助けてくれますか?)
申し訳ありませんが、私の英語は下手で、この種の問題についてはあまり経験がありません. 私を助けてください。
delphi - TObject からインターフェイス型へのキャスト
私の最後の質問に関連して、私は今次の問題を抱えています:
これにより、コンパイラ エラーが発生します。
キャストも機能しません。
ここで何が欠けていますか?
編集: 現在の実装
(簡素化され、エラー チェックが削除されました)
nhibernate - linq と nhibernate は同じタイプのコレクションを返しますか?
linq-to-sql または nhibernate 実装間で交換できるように db レイヤーを設計する場合、インターフェイスに対してコーディングする必要があります。
これは、linq と nhibernate の両方の戻り値の型が同じ、つまり List などである必要があることを意味します。
リストの種類は同じですか?
linq-to-sql - linq for sql でファクトリ クラスを使用するには?
データベース モデルの上にモデルがあり、オブジェクトをリポジトリにマップします。
ただし、GetUsers で直接「新規を選択」するか、以下に実装するように「factoryresult を選択」するかは明らかに違いがあります。実行時に、メソッド CreateFromDbModel に sql への変換がないというエラーが表示されます (System.NotSupportedException)。
これを回避する方法はありますか?どうにか直すことはできますか?
ファクトリ メソッドを使用する理由は、オブジェクトを別の場所でインスタンス化し、「マッピング コード」を 1 か所に保持したいからです...
コメントありがとう、アンダース
design-patterns - Factoryパターンの反対のデザインパターンはどれ?
工場のパターンとは逆のパターンがあるのではないかと思っていました。たとえば、特定のオブジェクトを削除する必要がある場合、ファクトリ オブジェクトで実行された構成を元に戻すために、追加の作業を行う必要があります。
ファクトリ パターンは厳密な作成パターンであるため、たとえば Delete メソッドを使用してファクトリ オブジェクトを拡張することは間違っているようです。
更新: 私がファクトリを使用している理由は、実行する必要がある構成によって、オブジェクトに適合しないいくつかの依存関係が導入されるためです。この構成解除をコンストラクターに入れると、同じ問題が発生します。
c# - C#ファクトリパターン
いくつかの異なるデータソースにインデックスを付けた検索アプリケーションを構築しています。検索エンジンインデックスに対してクエリが実行されると、各検索結果は、それがどのデータソースからのものであるかを指定します。検索結果の種類ごとに異なるテンプレートを表示するために使用するファクトリパターンを作成しましたが、検索エンジンによってインデックスが作成されるデータソースが増えるにつれて、このパターンの管理が難しくなることに気付きました(つまり、新しい新しいデータソースごとにコードテンプレートを作成する必要があります)。
DotNetSlackers.comにあるGranvilleBarnettの記事に基づいて、工場用に次の構造を作成しました。
ファクトリパターンhttp://img11.imageshack.us/img11/8382/factoryi.jpg
この検索アプリケーションの保守を容易にするために、作成するテンプレートを決定するためにファクトリパターンが参照できる個々のテンプレートタイプを定義するために使用できるデータベーステーブルのセットを作成することを考えました。検索結果のデータソースに基づいて作成するテンプレートのタイプを指定するために使用されるルックアップテーブルが必要だと思いました。次に、そのテンプレートタイプに対して表示するフィールドを指定するためのテーブルが必要になります。また、そのフィールド(ハイパーリンク、ラベル、CssClassなど)のレンダリング方法を定義するために使用されるテーブル(またはテンプレートテーブル内の追加の列)も必要です。
このようなパターンの例はありますか?私にお知らせください。ありがとう、-ロバート
php - ポリモーフィズムを促進するためにファクトリを使用していますか?
私の最初の質問は、基本的にコードレビューを求めることです。これから提供するコードは、ポリモーフィズムを促進するためにファクトリを使用しますか? PHPで書かれています。基本的な要件は次のとおりです。
- 長い URL をライブラリに渡し、短縮された URL を返します。長い URL とともに、ユーザー プロパティを渡して、ユーザー固有の短縮サービスと API キーを見つけようとします。
- ユーザーが特定の URL 短縮サービスの API キーを設定できるようにします。私のコードでは、これがデータベースに既に設定されており、Bitly がサポートされている唯一のサービスであると想定しています。
- ユーザーが API キーとサービス セットを持っていない場合は、デフォルトの API キーとサービスを使用します。繰り返しますが、私のコードは、データベースでデフォルトが Bitly に設定されていることを前提としています。
- URL Shorter サービスが失敗した場合は、失敗をログに記録しますが、例外はスローしません。ライブラリはサイレントに失敗するはずです。短い URL を使用する代わりに、長い URL を使用します。
コードを呼び出す例を次に示します。
クラスは次のとおりです。
perl - オブジェクトインスタンスでnewを呼び出すことの利点は何ですか?
私は読んProgramming Perl
でいて、このコードスニペットを見つけました:
このようなコンストラクターでnew
は、オブジェクトインスタンスを呼び出すことの利点は何ですか?それが目的だと思いますよね?私の推測では、誰かがそのようなコンストラクターを書きたい場合は、最初のオブジェクトの属性を作成しようとしているオブジェクトにコピーするコードをさらに追加する必要があります。
design-patterns - 抽象ファクトリ質問
AbstractFactoryのデザインパターンを理解しようとしています。私はそれで多くの問題を抱えています。次の例を使用して、UMLクラス図を作成しようとしています。
カーデザイナーは、さまざまな種類の車を設計できます。車には2つのドアを付けることも、4つのドアを付けることもできます。車は四輪駆動にすることも、二輪駆動にすることもできます。車は、ホイール、ドア、エンジン、トランスミッションなど、さまざまなパーツで構成されています。各パーツには、さまざまな操作があります。たとえば、トランスミッションには、first_gear()、second_gear()、third_gear()、fourth_gear()、reverse()があります。 、neutral()。
車の部品(上記にリストされている)は、ファミリーで利用可能です:ホンダ、ジープ、フォードなど。
アブストラクトファクトリーの設計手法を使用して、システムが車をある家族から別の家族に簡単に変更できるようにするソフトウェアシステムを開発する必要があります。
これが私がこれまで考えてきたことです。1つのファクトリと複数の抽象ファクトリがあります。つまり、抽象ファクトリがモデルを作成し、ファクトリがパーツを作成します...
誰か助けてもらえますか?ありがとう..
c# - Type.GetType() を取得して、app.config で参照されているプラグイン インスタンスのタイプを見つけられないのはなぜですか?
これが取引です。私はいくつかのプロジェクトを含むソリューションを持っています:
- ラッパー プロジェクト - これは、現在デバッグ中に Windows サービスの代わりになっている単なるコンソール アプリです。
- ワーカー プロジェクト - コードの内容が含まれています。このようにして、頭を悩ませることなく、Windows サービスのコードを簡単にデバッグできます。
- プラグイン ライブラリ プロジェクト - これには、プラグインの具体的なインスタンスを新しく作成するためのプラグイン ファクトリが含まれています。
- プラグイン プロジェクト - これには、プラグインの具体的な実装が含まれています。
私のラッパー アプリケーションには、私のプラグインが自己構成のために直接参照する必要がある私の app.config が含まれています。このように、私のラッパー アプリケーションは、アダプタ ファクトリを呼び出してプラグインのインスタンスを新たに作成する必要があること以外、何も知る必要はありません。
ラッパー プロジェクト:
ワーカー プロジェクト:
プラグイン ライブラリ:
プラグイン:
よし、これで準備は整った。私が立ち往生しているところは、私が参照するときの私のワーカープロジェクトにありますType.GetType(pluginTypeName)
。MypluginTypeName
は構成から正しく引き出されていますが、 をType.GetType(pluginTypeName)
返しますnull
。コード内の同じ場所で、プラグインのインスタンスを直接新しくしようとしました。
これは問題なく動作し、でobj.GetType().ToString()
構成したのとまったく同じ文字列を返しますapp.config
。
Type.GetType(pluginTypeName)
コードのその時点で具体的なオブジェクトを新しく作成できるのに、失敗する理由を誰か教えてもらえますか?