4

どこかで読んだのですが、IOCはファクトリーパターンとは違います。ファクトリ設計パターンはより侵入的ですが、依存性注入はそうではありません。

誰かがこれについてもっと詳しく説明できますか?

4

2 に答える 2

3

はい、IoC と Factory は 2 つの異なるものです。IoC は実際にはより一般的な用語であり、多くのものが IoC に該当するため、参照している内容をさらに絞り込むのに役立ちます。たとえば、技術的には、コールバックまたはイベントは IoC の実装と見なされます。ただし、ほとんどの人は、IoC について話すとき、依存性注入を意味します。

依存性注入を使用して実現できるのと同じように、ファクトリを使用して制御の反転を実現できます。

おそらくあなたが考えているのは、Unity、Windows、Ninject などの依存性注入コンテナーです。DI コンテナーは一種の美化された抽象的なジェネリック ファクトリですが、オブジェクトの有効期間管理、条件付きバインディングなど、それ以上のことを行います。

実装自体がパターンである場合でも、パターン (IoC または DI) を実装 (Factory、DI コンテナー、Poor mans DI など) から分離することが重要です。

于 2012-09-10T16:23:36.183 に答える
2

コントロール コンテナーの反転は、主に依存関係の挿入には使用されません。コンテナがオブジェクトの寿命を制御できるようにするためです。したがって、inversion of control.

そのため、コンテナに物を登録するときは常にライフタイムを指定します (または単にデフォルトのライフタイムを使用します)。

ただし、コンテナはオブジェクトを作成するため、追加機能として依存性注入を提供することもできます。だから、それは本当にボーナスです。

一方、ファクトリ パターンは常に新しいオブジェクトを作成する必要があります。ファクトリ パターンの目的は、正しい実装を作成することです。

于 2012-09-11T05:09:09.657 に答える