ローテーション:制御の反転と理解依存性注入

  オリジナル住所  オリジナル住所1

  春FrameworkにはDIこれら二つの概念が不明確で、一部の人々は春のIoC(制御の反転)いつものIoCを感じる初心者の春の人々のためにこれら二つの概念の、DI(依存性注入)を聞いたことがあるでしょう学びました理解し、今日のオンライン、大きな牛IOCのSpringフレームワークだけでなく、春Iocのが私の理解についての話の技術的な理解のいくつかを共有することは困難です。

1. IoCのは何ですか

  コントロールのIOC-反転、それは、「制御の反転」、技術的ではないが、デザインのアイデアです。Java開発では、IOCはあなたではなくあなたの内部のオブジェクトの上に伝統的な直接制御するよりも、コンテナコントロールにオブジェクトを設計していることを意味します。どのように良いIOCは理解できますか?理解するためにIOC良いの鍵は、私たちが徹底的に分析しなければならない「逆転され、なぜ何の制御は、用語を、逆に、(反転は、正のターンを持っている必要があります)を制御する人が誰であるか」を定義することです:

  ● 誰が、どのような制御を制御誰:従来のJava SEプログラミングを、私たちは直接オブジェクト内に新しいを通じてオブジェクトを作成し、依存オブジェクトを作成するためのプログラム・イニシアチブ;およびIOCは、これらのオブジェクトを作成するための特別なコンテナで、IoCコンテナから来ますコントロールオブジェクトを作成し、誰がコントロール?もちろん、IoCコンテナコントロールオブジェクト。何コントロール?それは(だけでなく、など、このようなファイルなどのオブジェクトを含む)のリソースへの主制御外部からのアクセスです。

  ● 逆転され、なぜ、逆にどのような:コントロールに直接依存オブジェクトを取得するオブジェクトに、前方に私たち自身のイニシアチブにより、レガシーアプリケーションを逆にそこに持っている、つまり、前進、逆はコンテナからである一方、依存オブジェクトを作成し、注入を支援するために、なぜ逆転されますか?コンテナは、依存オブジェクトを検索し、注入たちを支援するので、受動的に依存オブジェクトを、それを受け入れるの目的は、それが逆であり、何が逆?買収は逆に対象物に依存しています。

  図2-1に示されている従来のプログラミングを説明する凡例を用いて、関連するオブジェクトを作成するためのイニシアチブは、その後、組み合わされます。

1-1図レガシーアプリケーションの模式図

  もはやアクティブクライアントで場​​合そこのIoC / DIコンテナない、図2-2に示されているオブジェクトのクラスを作成します。

図2-2プログラム構造のIoC / DIコンテナの概略図

2.のIoCを何

  IOCは技術が、アイデア、私たちは疎結合、より良いプログラムを設計する方法ガイドオブジェクト指向プログラミングの重要なルールではありません。従来のアプリケーションは、クラス間の高い結合が得られ、クラスの依存オブジェクト内たちの主導で作成され、それが困難なテストです。あなたは、コンテナでコンテナにコントロールの依存オブジェクトを作成し、検索するIoCコンテナを持っていたら、オブジェクト間、オブジェクトの組み合わせを注入し、オブジェクトが緩くも多重化機能を助ける試験を容易にするであろうれ、結合されて、より重要なのは、プログラムの全体のアーキテクチャは、非常に柔軟になってきていることができます。

  実際には、IoCのプログラミングは、最大の変化は、コードからのものではないもたらすが、変更のイデオロギー、「マスター・スレーブ転置」。アプリケーションは、リソースがイニシアチブを取るためにあるものを手に入れるために、もともと上司だったが、のIoC / DIでアプリケーションが受動的になり、考え、そしてそれが必要なリソースを作成し、注入するパッシブ待っIoCコンテナ。

  設計ルールを指向オブジェクトのいずれかのIoCのは良い兆候 - ハリウッドルール:「私たちに来ないでください、私たちはあなたを探している」、つまり、IoCコンテナオブジェクトと依存性注入によって適切なオブジェクトを見つけるのではなく、オブジェクトを検索するためのイニシアチブを取ります。

3のIoCの和

  DI-依存性注入、すなわち、「依存性注入」:実行時のコンポーネント間の依存関係は、容器によって決定され、コンポーネントに容器ダイナミック依存性によって注入される画像は述べています。依存性の注入は、ソフトウェアシステムに多くの機能を持ってますが、コンポーネントの再利用頻度を向上させるために、そして柔軟でスケーラブルなプラットフォームを構築するためのシステムのためのものではありません。依存性注入機構を介して、我々は達成するために、誰から来た任意のコードなしに特定のリソースを心配することなく、自社のビジネスロジックを完了するために必要なターゲット・リソースを指定することができ、唯一の簡単な設定を必要としています。

  「依存性、依存している理由は、何か注入し、注入された」私たちは徹底的に分析することがあります:DIは、理解するための鍵です。

  ●誰に依存誰:もちろん、IoCコンテナに依存するアプリケーションです。

  ●なぜに依存している:アプリケーションが外部リソースに必要なオブジェクトを提供するために、IoCコンテナを必要とします。

  ●誰注入:それはオブジェクトがオブジェクトにIoCコンテナ・アプリケーション、アプリケーションに依存内に注入されることは明らかです。

  :●何注入(オブジェクト、リソース、定数データを含む)目的のために必要な外部リソースに注入されます。

  どのような関係でのIoCとDIのですか?Martin Fowler氏に実際に、彼らは原因制御概念の反転曖昧に(おそらく唯一のコンテナコントロールオブジェクトとして理解され、このレベル、オブジェクト・リレーショナル保護するために行くことを考えるのは難しいです)、別の視点を説明同じ概念なので、2004年のマスターそれは、新しい名前を与えている:相対的に言ったIoC、「依存性注入」を、「依存性の注入は、」はっきり「オブジェクトの依存関係は、IoCコンテナの構成に依存するオブジェクトを注入している。」説明します

  春のIoCに多くの記事を読む理解し、人のIOC解釈とDIの多くは、とにかく、あいまいされ、不可解な感情の一種である、それはまだ損失である読んだ後、気持ちが開いタオです牛は、特にユーザーフレンドリーな技術を書かれていた、彼は明らかにそれを読んだ後明確な洞察力の感じを与えて、すべての単語でのIoC(制御の反転)及びDI(依存性注入)を説明しています。私は春のフレームワークののIOC理解が大きな助けになるはずです初心者のためにそれを信じています。

 

おすすめ

転載: www.cnblogs.com/xxrl-c/p/11316709.html