ホームページ  >  記事  >  ウェブフロントエンド  >  Angular の依存性注入パターンの詳細な説明

Angular の依存性注入パターンの詳細な説明

青灯夜游
青灯夜游転載
2021-04-22 10:08:542954ブラウズ

この記事では、Angular の依存関係注入モードについて詳しく説明します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Angular の依存性注入パターンの詳細な説明

Angular 依存性注入モード

依存性注入: 依存性注入は DI

と呼ばれます。

依存性注入モデルで解決すべき問題

開発中、オブジェクトのインスタンス化に遭遇することがよくありますが、複数のオブジェクト間に依存関係がある場合、手動でのインスタンス化は特に面倒です。 。

オブジェクト A がオブジェクト B に依存する場合、オブジェクト A はオブジェクト B を明示的にインスタンス化する必要はありません。B は外部メカニズムによって挿入されます。オブジェクト A は B オブジェクトを宣言するだけで済みます。これは依存関係注入によって解決される問題です。

依存性注入とともによく登場するもう 1 つの概念は、制御の反転と呼ばれます。

制御の反転: IOC と呼ばれる制御の反転は、コードの内部からコードの外部への依存制御の反転を指します。

Dependency InjectionInversion of Control は、1 つのアイデアを表す同じコインの表裏の関係にあります。 Dependency Injection は手段の説明、つまり制御反転を実現する方法に焦点を当てます。Control Inversion は目的の記述に焦点を当てます。つまり、目的は依存関係の制御を元に戻すことです。コードの内部からコードの外部へ。

関連チュートリアルの推奨事項: "angular チュートリアル "

依存関係注入モードの利点

  • 疎結合、再利用
  • コンポーネントのテスト容易性の向上

Angular による依存関係注入の実装方法

インジェクター

各コンポーネントにはインジェクター インスタンスがあり、コンポーネントが必要とするオブジェクトを注入する役割を果たします。インジェクターは、Angular によって提供されるサービス クラスです。通常の状況では、インジェクター メソッドを直接呼び出す必要はなく、インジェクターは、コンポーネントの constructor(constructor) を通じて、コンポーネントに必要なオブジェクトをコンポーネントに自動的に挿入します。プロバイダーは、インジェクターにインスタンスの作成方法を指示します。

プロバイダー

インジェクターが、挿入されたオブジェクトがどのようにインスタンス化されるかを知るためには、プロバイダーを指定する必要があります。通常、プロバイダー属性を渡します。コンポーネントまたはモジュール。提供する必要があるオブジェクトを宣言します。

一般的な宣言方法

providers:[{provide:AService, useClass: AServivce}] <=> providers:[AService]
provide 属性:指定了提供器的令牌(token)
useClass 属性:表示实例化方式是 new

ファクトリメソッドの宣言方法

使用 useFactory 方式实例化对象
providers:[
  {
    provide:AService, 
    useFactory: (bService: BService) => {
      ....
    },
    deps:[BService] //deps声明工厂方法所依赖的服务。
    ]
工厂方法创建的对象是单例对象

コンストラクタ(constructor)で宣言されたオブジェクト、トークンプロバイダ内の はクラス名に基づいて照合され、指定されたオブジェクトは useClass 属性の値に基づいてインスタンス化されます。

プロバイダー挿入ルール

  • プロバイダーがモジュール内で宣言されると、そのプロバイダーはすべてのコンポーネントに表示され、すべてのコンポーネントに挿入できます。
  • プロバイダがコンポーネント内で宣言されている場合、そのプロバイダは、それが宣言されているコンポーネントおよびサブコンポーネントにのみ表示され、他のコンポーネントには表示されません;
  • モジュール内で宣言されたプロバイダにコンポーネント トークンで宣言されたプロバイダーと同じプロパティの場合、コンポーネントで宣言されたプロバイダーはモジュールで宣言されたプロバイダーをオーバーライドします。
  • 一般に、プロバイダーはモジュールで宣言する必要があります。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上がAngular の依存性注入パターンの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。