Bây giờ chúng ta hãy nhìn xuyên qua tiêm phụ thuộc.
Chích phụ thuộc chính xác là gì và nó có liên quan đến Angular như thế nào?
Chúng ta hãy nói về điều đó tiếp theo.
Vì vậy, chính xác là tiêm phụ thuộc là gì?
Tiêm phụ thuộc Là một mô hình thiết kế phần mềm.
Đây là một mô hình hữu ích cho việc thực hiện các ứng dụng mà bạn có
một đối tượng đó là phụ thuộc vào một đối tượng khác trong một cách mà là hiệu quả.
Bây giờ tiêm phụ thuộc, như chúng ta nhận ra, có hai phần.
Phụ thuộc và tiêm.
Hãy nói về sự phụ thuộc đầu tiên.
Phụ thuộc có nghĩa là đối tượng của bạn phụ thuộc vào một đối tượng khác.
Vì vậy, đó là lý do tại sao đó là một sự phụ thuộc giữa đối tượng của bạn và một đối tượng khác.
Tiêm đang nói về việc đi qua sự phụ thuộc vào một đối tượng phụ thuộc.
Vì vậy, nếu bạn có một đối tượng, nếu có một cơ chế cho
phép bạn có thể lấy một đối tượng và sau đó làm cho nó có sẵn cho một đối tượng thứ hai, để đối
tượng kia có thể sử dụng nó mà không nhận thức được
chính xác như thế nào đối tượng đầu tiên được thực hiện hoặc xóa.
Vì vậy, trong trường hợp này đối tượng phụ thuộc là không biết,
hoặc không cần phải lo lắng về cách đối tượng khác được thực hiện.
Nó chỉ cần sử dụng nó, bên trong đối tượng của bạn, bất cứ nơi nào nó ở.
Chích phụ thuộc được đặt ra bởi Martin Fowler vào năm 2004.
Và là một thiết kế phần mềm hữu ích nhấn mạnh hơn nữa vào sự phụ thuộc.
Nếu một đối tượng phụ thuộc vào một đối tượng khác
thì có ba cách nó có thể truy cập vào đối tượng kia.
1, Nó có thể tạo ra các đối tượng phụ thuộc chính nó bằng cách sử dụng toán tử mới
mà bạn đã nhìn thấy điều này trong trường hợp của các lớp học.
Vì vậy, ví dụ, nếu bạn cần một đối tượng mới của một loại class,
sau đó bạn tạo đối tượng đó bằng cách sử dụng mới trong các ngôn ngữ, như C++ hoặc
Java, và thậm chí gõ script.
Sau đó, bạn có thể sử dụng đối tượng cụ thể đó.
Cách khác là khai báo đối tượng khác như là một biến toàn cục, và
sau đó bạn tra cứu sự phụ thuộc bằng cách sử dụng biến toàn cục.
Cách thứ ba để làm điều này là có sự phụ thuộc truyền vào bạn,
bất cứ nơi nào nó là cần thiết.
Vì vậy, nếu bạn đang phụ thuộc vào một cái gì đó khác, sau đó một cái gì đó khác sẽ được
tiêm vào bạn bởi một hệ thống bất cứ nơi nào nó được yêu cầu.
Vì vậy, bây giờ tùy chọn thứ ba cung cấp cho bạn rất nhiều sự linh hoạt trong cách
mà phần mềm được thiết kế.
Vì vậy, trong cách tiếp cận này, trong cách tiếp cận thứ ba,
không cần mã hóa cứng sau khi phụ thuộc.
Trong hai cách tiếp cận đầu tiên, sự phụ thuộc được mã hóa cứng trong đó,
bởi vì bạn cần phải nhận thức đầy đủ về cách bạn tạo ra
đối tượng mà bạn đang phụ thuộc vào, bên trong đối tượng của riêng bạn.
Trong đối tượng thứ ba,
bởi vì đối tượng kia đang được tiêm vào bạn bất cứ khi nào bạn cần nó,
bạn không thực sự quan tâm nó được tạo ra như thế nào, miễn là bạn có quyền truy cập vào nó.
Và lợi thế khác mà cách tiếp cận này mang lại là nó
tạo điều kiện dễ dàng kiểm tra ứng dụng của bạn bởi vì khi bạn
cần một đối tượng mà bạn đang phụ thuộc vào, thay vì đi vào
đối tượng phụ thuộc, bạn thậm chí có thể tạo ra một đối tượng giả của loại và
sau đó vượt qua nó trong để kiểm tra đối tượng cụ thể của bạn.
Sự tách biệt giữa đối tượng phụ thuộc và đối tượng khác rất,
rất hữu ích khi chúng ta nhận ra trong việc thực hiện thử nghiệm.
Chúng ta sẽ thảo luận về vấn đề này một cách ngắn gọn khi chúng ta xem xét thử nghiệm góc cạnh sau này trong khóa học này.
Dependency Injection mang lại khoảng bốn vai trò khác nhau mà chúng ta cần phải xem xét.
Đầu tiên tất nhiên là dịch vụ mà bạn sẽ sử dụng trong
thành phần của bạn ví dụ và cần phải được tiêm vào.
Thứ hai các khách hàng đó là phụ thuộc vào các dịch vụ
mà trong trường hợp này là thành phần của bạn.
Thứ ba, giao diện, một khi tiêm làm thế nào để bạn sử dụng dịch vụ đó.
Và cuối cùng là vòi phun, thực thể chịu trách nhiệm
tiêm vật đó vào đối tượng của bạn.
Như bạn sẽ khá sớm nhận ra,
góc thể hiện phụ thuộc tiêm rất nhiều trong cách nó được thực hiện.
Vì vậy, đây là những gì tạo điều kiện cho việc tách một logic kinh doanh
từ xây dựng phụ thuộc để bạn có thể viết logic kinh doanh của bạn
trong đối tượng độc lập và sau đó tiêm chúng bất cứ nơi nào nó được yêu cầu.
Và sự phụ thuộc được chuyển vào đối tượng đang tiêu thụ nó
bất cứ nơi nào nó là cần thiết.
Bây giờ, tiêm chích này được chăm sóc như thế nào?
Tiêm này được chăm sóc bởi subsytem tiêm góc cạnh.
Hệ thống phụ tiêm góc sẽ chăm sóc tạo ra các dịch vụ này và
sau đó tiêm chúng vào thành phần của bạn bất cứ nơi nào bạn cần chúng.
Vì vậy, nó cũng chăm sóc giải quyết các phụ thuộc và cũng có thể,
cung cấp các đối tượng cho các thành phần khác mà yêu cầu các đối tượng này.
Vì vậy, hệ thống con vòi phun góc cung cấp tất cả các cơ chế này
để chúng ta có thể kích hoạt điều này.
Làm thế nào để nó thực sự hoạt động?
Chúng tôi sẽ xem xét điều đó trong bài tập sau,
nơi chúng tôi sẽ sử dụng một dịch vụ mà chúng tôi tạo ra Trong các thành phần
mà chúng tôi thiết kế cho ứng dụng Angular của chúng tôi.
[ NHẠC]