网上搜了一下,感觉还是不能理解
认证0级讲师
依存関係の注入: プログラムの実行中に、別のオブジェクトと連携する必要がある場合 (そのメソッドを呼び出し、そのプロパティにアクセスする)、コード内で呼び出し先を作成する必要はありませんが、外部コンテナ#🎜 🎜#
個人的に理解しているのですが、依存関係の注入とは、呼び出し元がコンポーネントを宣言するだけでコンポーネントの制御を取得でき、コンポーネントの依存関係の管理、検索、読み込みが外部で完了することを意味します。
AngularJS では、$injector进行这项工作。 比如,我在一个服务中注入了$http,并用hehe:
$injector
$http
hehe
依存関係の注入は、オブジェクトのライフサイクル、いつ作成されるか、いつ破棄されるかを気にする必要がないことを意味し、オブジェクトのライフサイクルはフレームワークによって直接管理されます。依存関係の注入を提供します。
1 点追加させてください: 依存関係の注入と制御の反転は、実際には同じ概念です。 @Wang_Bourne
http://www.cnblogs.com/kinglongdai/p/3269049.html MOOC: http://www.imooc.com/video/4907
理論的な理解は常に少し難解に感じられますが、RoboGuice などの依存性注入のオープンソース フレームワークを検討することをお勧めします。実際の知識は実践から得られます。 申し訳ありませんが、カテゴリを読んでいませんでした。RoboGuice は Android 用のフレームワークですが、原理は同じです。
依存性注入 (DI) は制御反転 (IoC) とも呼ばれます。つまり、クラスとメソッドとメソッドの間の関係がサードパーティ (構成ファイルなど) を通じて「注入」され、クラスやメソッドは必要ありません。クラスメソッド間の呼び出し関係を解決します。従来のアプリケーションは通常、クラスが依存する他のオブジェクトをクラス内の実行コード内で積極的に作成するため、クラス間の結合が密になり、クラスのテストと分離が困難になり、最終的にはシステムの拡張と保守が非常に困難になります。依存性注入は、コンポーネント間の依存関係、構成、ライフサイクル管理を解決するために使用され、オブジェクト制御を転送することで、オブジェクト間の結合問題を解決できます。さらに重要なのは、アプリケーション システムの構造です。非常に柔軟になります。これは、オブジェクト指向設計ルールの 1 つである依存関係設計原則、有名なハリウッドの原則をよく反映しています。あなた。あなた)
angular.js にはこの種の考え方がたくさん含まれています。
include var net = require('net');
全部紫色です。
依存性の注入
実際には、現在のオブジェクトの特性属性が外部から注入されたオブジェクトによって決定されることを意味します。 たとえば、家族が靴工場を開く場合、メイクという靴の製造方法があります。
市場の需要により、一部の有名なスポーツシューズ会社はあなたの工場に原材料の大きな袋を提供し、それをOEMで入手することができます。
このように、ナイキがあなたにOEM作業を依頼し、あなたにナイキの素材を提供した場合、あなたはナイキのスポーツシューズをあなたに提供し、アディダスの靴を生産することができます。
つまり、あなたの靴工場が生産する靴がA社製かN社製かは、材料をA社が提供するかN社が提供するかによって決まります。
オブジェクト指向プログラミングでは、プログラムの結合度が低いほど、プログラムの可読性と保守性が高くなります。制御の反転 (IoC) は、一般的に使用されるオブジェクト指向プログラミングの設計原則です。この原則を使用すると、結合を減らすことができます。依存性の注入は、制御の反転の最も一般的に使用される実装です。
依存性注入について話すための特別な訪問
非常に単純な個人的な理解、依存関係の注入は実際には難しくありません、それは非常に自然なことです、実生活はプログラミングよりも実際には難しいです: 依存性の注入: あなたは人間です、あなたは狩りに行きたい、あなたは銃が必要です, 現時点では 2 つのオプションがあります。最初のオプションは自分で作成することですが、これは明らかに推奨されません。 2 番目のオプションは、店に行って購入することです。これは依存性注入です、それは外部から注入されるためです、それを購入することで、あなたが作成した問題を解決でき、それを注入することで、 、依存を解消できます。なんて単純なことでしょう。 制御原理の逆転: 具体的なものではなく、抽象的な概念に頼ってください。 銃を購入するときは、銃の抽象的な概念を頭の中に入れておく必要があります。頭の中にある抽象的なイメージで十分です。そして、あなたは神によって創造されたのです。神があなたをハンターとして試したいとき、神があなたのために銃を作るのはもっと面倒ですが、あなたのカバンの中に銃の説明書があれば、それは簡単です。 「すぐに銃を手に入れるのを手伝ってあげるよ。」もっと乱暴に言うと、特定の銃に依存するのではなく、その銃のマニュアルに依存するという制御原理の逆転です。 明らかに、これは私たちが実生活で行っていることです。 コンテナ: それは現実世界の超強力な工場に相当します。神 (プログラマー) はそれを常にアップグレードする責任があり、あなたが彼に何を言っても、彼はあなたがそれを作るのを手伝い、あなたに無料で与えます。 。 あなたのために。工場はあなたのために汚れ仕事をすべてやってくれるので、あなたには人生を楽しむことだけが責任があります。このファクトリーは、依存関係の注入を実装する際の困難な場所です。
依存性注入は共産主義社会に相当します。
依存関係の注入: プログラムの実行中に、別のオブジェクトと連携する必要がある場合 (そのメソッドを呼び出し、そのプロパティにアクセスする)、コード内で呼び出し先を作成する必要はありませんが、外部コンテナ#🎜 🎜#
次の例の方が興味深いかもしれません個人的に理解しているのですが、依存関係の注入とは、呼び出し元がコンポーネントを宣言するだけでコンポーネントの制御を取得でき、コンポーネントの依存関係の管理、検索、読み込みが外部で完了することを意味します。
AngularJS では、
によって呼び出されます。 リーリー$injector
进行这项工作。比如,我在一个服务中注入了
$http
,并用hehe
:依存関係の注入は、オブジェクトのライフサイクル、いつ作成されるか、いつ破棄されるかを気にする必要がないことを意味し、オブジェクトのライフサイクルはフレームワークによって直接管理されます。依存関係の注入を提供します。
1 点追加させてください: 依存関係の注入と制御の反転は、実際には同じ概念です。
@Wang_Bourne
http://www.cnblogs.com/kinglongdai/p/3269049.html
MOOC: http://www.imooc.com/video/4907
理論的な理解は常に少し難解に感じられますが、RoboGuice などの依存性注入のオープンソース フレームワークを検討することをお勧めします。実際の知識は実践から得られます。 申し訳ありませんが、カテゴリを読んでいませんでした。RoboGuice は Android 用のフレームワークですが、原理は同じです。
依存性注入 (DI) は制御反転 (IoC) とも呼ばれます。つまり、クラスとメソッドとメソッドの間の関係がサードパーティ (構成ファイルなど) を通じて「注入」され、クラスやメソッドは必要ありません。クラスメソッド間の呼び出し関係を解決します。従来のアプリケーションは通常、クラスが依存する他のオブジェクトをクラス内の実行コード内で積極的に作成するため、クラス間の結合が密になり、クラスのテストと分離が困難になり、最終的にはシステムの拡張と保守が非常に困難になります。依存性注入は、コンポーネント間の依存関係、構成、ライフサイクル管理を解決するために使用され、オブジェクト制御を転送することで、オブジェクト間の結合問題を解決できます。さらに重要なのは、アプリケーション システムの構造です。非常に柔軟になります。これは、オブジェクト指向設計ルールの 1 つである依存関係設計原則、有名なハリウッドの原則をよく反映しています。あなた。あなた)
angular.js にはこの種の考え方がたくさん含まれています。
include var net = require('net');
全部紫色です。
依存性の注入
実際には、現在のオブジェクトの特性属性が外部から注入されたオブジェクトによって決定されることを意味します。
リーリーたとえば、家族が靴工場を開く場合、メイクという靴の製造方法があります。
市場の需要により、一部の有名なスポーツシューズ会社はあなたの工場に原材料の大きな袋を提供し、それをOEMで入手することができます。
リーリーこのように、ナイキがあなたにOEM作業を依頼し、あなたにナイキの素材を提供した場合、あなたはナイキのスポーツシューズをあなたに提供し、アディダスの靴を生産することができます。
つまり、あなたの靴工場が生産する靴がA社製かN社製かは、材料をA社が提供するかN社が提供するかによって決まります。
オブジェクト指向プログラミングでは、プログラムの結合度が低いほど、プログラムの可読性と保守性が高くなります。制御の反転 (IoC) は、一般的に使用されるオブジェクト指向プログラミングの設計原則です。この原則を使用すると、結合を減らすことができます。依存性の注入は、制御の反転の最も一般的に使用される実装です。
依存性注入について話すための特別な訪問
非常に単純な個人的な理解、依存関係の注入は実際には難しくありません、それは非常に自然なことです、実生活はプログラミングよりも実際には難しいです:
さらに理解すると、依存性の注入: あなたは人間です、あなたは狩りに行きたい、あなたは銃が必要です, 現時点では 2 つのオプションがあります。最初のオプションは自分で作成することですが、これは明らかに推奨されません。 2 番目のオプションは、店に行って購入することです。これは依存性注入です、それは外部から注入されるためです、それを購入することで、あなたが作成した問題を解決でき、それを注入することで、 、依存を解消できます。なんて単純なことでしょう。
制御原理の逆転: 具体的なものではなく、抽象的な概念に頼ってください。 銃を購入するときは、銃の抽象的な概念を頭の中に入れておく必要があります。頭の中にある抽象的なイメージで十分です。そして、あなたは神によって創造されたのです。神があなたをハンターとして試したいとき、神があなたのために銃を作るのはもっと面倒ですが、あなたのカバンの中に銃の説明書があれば、それは簡単です。 「すぐに銃を手に入れるのを手伝ってあげるよ。」もっと乱暴に言うと、特定の銃に依存するのではなく、その銃のマニュアルに依存するという制御原理の逆転です。 明らかに、これは私たちが実生活で行っていることです。
コンテナ: それは現実世界の超強力な工場に相当します。神 (プログラマー) はそれを常にアップグレードする責任があり、あなたが彼に何を言っても、彼はあなたがそれを作るのを手伝い、あなたに無料で与えます。 。 あなたのために。工場はあなたのために汚れ仕事をすべてやってくれるので、あなたには人生を楽しむことだけが責任があります。このファクトリーは、依存関係の注入を実装する際の困難な場所です。
依存性注入は共産主義社会に相当します。