Dependency injection với Dagger 2 trong lập trình Android

0
1549

Trong bài học lập trình android trước chúng ta đã tìm hiểu về Dependency injection là gì, tiếp tục với bài học này chúng ta sẽ tìm hiểu về Dependency injection với Dagger 2, khái niệm Dagger 2.

1. Khái niện Dagger 2

Dagger 2 là một trong các phụ thuộc trong khuôn khổ của framework. Nó được dựa trên các yêu cầu kỹ thuật Java (JSR) 330. Nó sử dụng hệ mã và được dựa trên các chú thích. Các mã được tạo ra là rất tương đối dễ dàng để đọc và gỡ rối.

Dagger 2 được sử dụng:

  • @Module Và @Provides : định nghĩa các lớp và phương thức cung cấp phụ thuộc
  • @Inject : Yêu cầu phụ thuộc. Có thể được sử dụng trên một nhà xây dựng, một lĩnh vực, hoặc một phương pháp
  • @Component : Enable chọn mô-đun và sử dụng để thực hiện tiêm phụ thuộc

Trong Dagger nó không được phép sử dụng lĩnh vực tư nhân để tiêm lĩnh vực như Dagger 2 sử dụng tạo ra mã để truy cập vào các lĩnh vực và không phản hồi trong lập trình android

2. Các nhà cung cấp đối tượng.

Thuật ngữ dependency injection context thường được sử dụng để mô tả tập các đối tượng được thực hiện.

Trong Dagger 2, lớp chú thích với @Module chịu trách nhiệm cung cấp các đối tượng có thể được thử nghiệm. Lớp như vậy có thể xác định phương pháp chú thích với @Provides. Các đối tượng trở về từ những phương pháp có sẵn để thử nghiệm.

Phương pháp chú thích với @Provides cũng có thể thể hiện sự phụ thuộc qua các thông số phương pháp. Những phụ thuộc được thực hiện bởi Dagger 2 nếu có thể.

3. Phụ thuộc xác định (người sử dụng đối tượng)

Bạn sử dụng các chú thích @Inject để xác định một sự phụ thuộc. Nếu bạn chú thích một constructor @Inject , Dagger 2 cũng có thể sử dụng một thể hiện của đối tượng này để thực hiện phụ thuộc. Điều này đã được thực hiện để tránh định nghĩa của nhiều phương pháp @Provides cho đối tượng.

4. Kết nối người dùng với các nhà cung cấp.

Các @Component được sử dụng trên một giao diện. Một giao diện như vậy được sử dụng bởi Dagger 2 để tạo ra mã.

Các mô hình cơ sở cho các lớp được tạo ra là Dagger được sử dụng như tiền tố theo sau là tên giao diện. Tạo ra lớp này có tạo ra phương pháp cho phép cấu hình các đối tượng dựa trên cấu hình nhất định. Các phương pháp xác định trên giao diện có sẵn để truy cập các đối tượng được tạo ra.

Xem thêm >>> học lập trình android ở đâu tốt nhất

Một giao diện @Component định nghĩa các kết nối giữa các nhà cung cấp của các đối tượng (mô-đun) và các đối tượng đó thể hiện một sự phụ thuộc. Bảng dưới đây đưa ra một cái nhìn tổng quan về việc sử dụng các chú thích Dagger.

Tóm tắt chú thích của Dagger 2

  • @Module : Được sử dụng trên lớp, trong đó có phương pháp chú thích với @Provides .
  • @Provides : Có thể được sử dụng trên các phương thức trong lớp chú thích với @Module và được sử dụng cho các phương pháp cung cấp đối tượng tiêm phụ thuộc.
  • @Singleton : Đối tượng cung cấp này được tạo ra và chia sẻ.
  • @Component : Được sử dụng trên một giao diện. Giao diện này được sử dụng bởi Dagger 2 để tạo ra mã mà sử dụng các mô-đun để thực hiện đầy đủ các phụ thuộc yêu cầu.

5. Sử dụng Dagger 2 với Eclipse và Maven

Để sử dụng Eclipse và Maven cùng với Dagger 2 bạn có thể cài đặt các dụng cụ Maven và apt plug-in cho phép Maven để cấu hình bộ xử lý chú thích. Để được hỗ trợ Eclipse Maven sử dụng các trang web cập nhật các phiên bản của bạn và sau đó cài đặt các dụng cụ M2E-apt.

Sau khi cài đặt, bạn phải kích hoạt apt-chế biến trên thông qua các ưu đãi Eclipse trong Window ▸ Preferences ▸ Maven ▸ Annotation Processing sau đó chọn Automatically configure JDT APT.

lap-trinh-android-dagger

Chia sẻ

BÌNH LUẬN

Please enter your comment!
Please enter your name here