Angular學習筆記(五)依賴注入等

依賴注入的好處主要是松耦合的方式編寫代碼,可測性和可重用性更高。

1.注入器

每個組件都有一個注入器實例負責注入組件需要的對象,注入器是angular提供的一個服務類,一般情況下你不需要直接調用注入器的方法,注入器會自動地通過組件的構造函數將組件所需的對象注入進組件。

constructor(private productService: ProductService){...}

// tips: 控制反轉 Inversion of Control 簡稱IOC 把依賴的控制權從代碼的內部轉移到代碼的外部(代碼對外的依賴是由代碼的內部決定的) 
1.側重于描述目的,把依賴的控制權從代碼的內部轉移到代碼的外部
2.依賴注入側重于描述手段,實現如何控制反轉
實際上,Angular就是一個IOC容器

2.提供器

為了讓注入器知道需要被注入的對象如何實例化,需要指定提供器

providers:[ProductService]
// 它和下面這個寫法是一樣的
providers:[{ provide: ProductService, useClass: ProductService }]
// 使用useClass屬性具體實例化類
providers:[{ provide: ProductService, useClass: AnotherProductService }]
providers:[{ provide: ProductService, useFactory:() => {...} }]

// 提供器的作用域:
  // 1.當一個提供器聲明在模塊時,它對所有組件可見,所有組件都可以注入該提供器(product1Component組件用的就是這個)
  // 2.當一個提供器聲明在組件中時,它對當前組件及其子組件可見,其他組件不可以注入。
  // 3.當聲明在模塊的提供器和聲明在組件的提供器具有相同的token時,聲明在組件中的提供器會覆蓋聲明在模塊中發的提供器。
  // 4.一般情況下,優先將服務提供器聲明在模塊中,只有某個服務提供器必須對某個組件可用且其他組件不可用時,將其聲明在組件中。

3.工廠方法

根據某些條件,決定實例化哪些對象;實例化對象時,調用對象的構造函數,需要傳遞參數,這個時候使用工廠提供器

 useFactory 工廠提供器

4.注入器的層級關系

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 版本:Angular 5.0.0-alpha 依賴注入是重要的應用設計模式。它使用得非常廣泛,以至于幾乎每個人都稱...
    soojade閱讀 3,006評論 0 3
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • 一、什么是依賴注入 控制反轉(IoC) 控制反轉的概念最早在2004年由Martin Fowler提出,是針對面向...
    Keriy閱讀 3,199評論 0 8
  • Swiper(Swiper master)是目前應用較廣泛的移動端網頁觸摸內容滑動js插件。使用的次數越多,遇到的...
    愿你如夏日清涼的風閱讀 6,533評論 0 1