Page 58 - Ký sự code dạo
P. 58
LẬP TRÌNH VIÊN ĐÂU PHẢI CHỈ BIẾT CODE
• Constructor Injection: Các dependency sẽ được
container truyền vào (inject vào) 1 class thông qua constructor
của class đó. Đây là cách thông dụng nhất.
• Setter Injection: Các dependency sẽ được truyền vào 1 class
thông qua các hàm Setter.
• Interface Injection: Class cần inject sẽ implement 1 interface.
Interface này chứa 1 hàm tên Inject. Container sẽ injection
dependency vào 1 class thông qua việc gọi hàm Inject của
interface đó. Đây là cách rườm rà và ít được sử dụng nhất.
Ưu điểm và khuyết điểm của DI
Dĩ nhiên, DI không phải vạn năng, nó cũng có những ưu điểm và khuyết
điểm, do đó không phải project nào cũng nên áp dụng DI. Với những
dự án lớn, code nhiều, cần sử dụng DI để đảm bảo code dễ bảo trì, dễ
thay đổi.
Vì vậy, bản thân các framework nổi tiếng như Spring, Struts2, ASP.NET
MVC, … đều hỗ trợ hoặc tích hợp sẵn DI. ASP.NET MVC từ bản 5 trở
xuống cho phép ta sử dụng DI container từ thư viện, từ bản 6 thì tích
hợp sẵn DI luôn, không cần phải thêm thư viện gì.
56