3

工場 と 工場はどう違いActivator.CreateInstanceますか?それらは同じ意味で使用できますか? それともまだファクトリーパターンが必要ですか?

4

2 に答える 2

4

Activator.CreateInstanceその型のデフォルトのコンストラクターを使用して、指定された型のインスタンスを作成する静的メソッドです。

ファクトリ パターンは、作成されるオブジェクトの正確なクラスを指定せずにオブジェクト (製品) を作成する問題を扱います。

ファクトリ パターン内でを「使用」して、Activator.CreateInstanceさまざまなタイプのオブジェクトを返すことができます。この例を参照してください。を使用して一般的なファクトリを作成することもできますActivator.CreateInstance

于 2010-04-06T11:40:17.903 に答える
3

ファクトリパターンは、より高いレベルのパターンです。これにより、オブジェクトの作成で発生する可能性のあるいくつかの問題に対処できる構造が得られます。ウィキペディアから引用するには、

オブジェクトの作成には、多くの場合、構成オブジェクトに含めるのに適切でない複雑なプロセスが必要です。オブジェクトの作成は、コードの大幅な重複につながる可能性があり、構成オブジェクトにアクセスできない情報を必要とする可能性があり、十分なレベルの抽象化を提供しない可能性があり、そうでなければ構成オブジェクトの懸念の一部ではない可能性があります。

オブジェクトの作成に必要なプロセスには、作成するオブジェクトの決定、オブジェクトの存続期間の管理、およびオブジェクトの特殊なビルドアップとティアダウンの問題の管理が含まれます。

Activator.CreateInstanceはこれらの問題のいずれにも対処せず、タイプの新しいインスタンスを作成できるようにするだけです。上記のような問題がない場合(そして「ファクトリパターン」の多くの使用法がそのような問題のコンテキストにない場合)、Activator.CreateInstanceは問題ありません。

于 2010-04-06T11:42:20.253 に答える