Home IT Android Studio Model View Presenter mô hình MVP trong Android

Model View Presenter mô hình MVP trong Android

11 min read
0
0
407

Mô hình MVP Android là gì?

MVP là một mô hình kiến trúc hướng giao diện người dùng viết tắt của Model View Presenter, là một dẫn xuất từ ​​MVC nổi tiếng (Model View Controller). MVP không phải là một mẫu kiến trúc , nó chỉ chịu trách nhiệm cho lớp trình bày.

Mô hình MVP cho phép tách lớp trình bày (Presenter) khỏi Model, sao cho hoạt động của giao diện được tách biệt với tầng dữ liệu trên màn hình. Đặc biệt nhất là mô hình MVP sẽ đạt được là cùng với một logic người dùng có thể có các khung nhìn hoàn toàn khác nhau và có thể hoán đổi cho nhau.

Trong đó:

+ Model (M): là lớp xử lý dữ liệu, nhiệm vụ của lớp này là lấy cùng dữ liệu từ database và network sau đó di chuyển đến Presenter thông qua lệnh callback.

+ View (V): là lớp xử lý giao diện, lớp này thực hiện việc tìm view và đưa dữ liệu vào view sau đó truyền đến Presenter.

+ Presenter (P): là lớp xử lý bussiness logic. Đây là lớp trung gian nhận dữ liệu từ M và V, 2 lớp này không trực tiếp giao tiếp với nhau. Khi Model nhận dữ liệu thì Presenter thực hiện lấy dữ liệu từ Model, định dạng và đưa tới View để hiển thị.

> Sau khi đọc tài liệu về mô hình MVP mà các bạn vẫn chưa nắm rõ kiến thức về Android thì chúng tôi khuyên các bạn nên theo học một khóa android cơ bản để nâng cao kiến thức của bản thân.

Cách triển khai

Có rất nhiều phương pháp để triển khai MVP trên Android, các lập trình viên có thể sử dụng và điều chỉnh mô hình theo ý thích mà họ cảm thấy phù hợp. Dưới đây là một số phương pháp trển khai MVP cơ bản:

+ Tầng trình diễn – Presenter

Tầng này có chức năng quan trọng kết nối 2 tầng còn lại: View và Model. Nó lấy dữ liệu từ Model, định dạng và ttruyền đến cho View. Nhưng không giống như MVC, nó cũng quyết định những gì sẽ xảy ra khi người dùng tương tác với View, hay nói cách khác nó hàm chứa logic ứng dụng.

+ Tầng logic dữ liệu – Model

Để đơn giản, ở đây Model đơn thuần được nhìn nhận như một data source – cung cấp dữ liệu chúng ta muốn hiển thị trong giao diện ứng dụng.

+ Tầng giao diện – View

View tùy thuộc vào cấu trúc ứng dụng nghĩa là phụ thuộc vào Model. Presenter nên được cung cấp bởi một Dependency Injection framewok như Dagger, nhưng trong trường hợp ứng dụng không sử dụng một thư viện hay framework như vậy ta hoàn toàn có thể tạo ra các đối tượng Presenter này.

So sánh MVC và MVP

MVP(Model – view – presenter) MVC (Model – view – control)
Về tương tác Tầng view là tầng duy nhất nhận tương tác. Cả 2 tầng view và control đều có thể tương tác được với người dùng.
Logic xử lý dữ liệu tương tác cũng như xử lý dữ liệu hiển thị được tách ra trong tầng presenter. tương tác và xử lý dữ liệu hiển thị được gộp chung vào trong controler.
Hiệu quả Việc kết hợp này giảm thiểu lượng code trong ứng dụng cũng như gộp các logic trong ứng dụng vào một nơi => Dễ dàng trong việc kiểm thử một cách độc lập. Việc gộp chung vào một controler sẽ khó kiểm soát lượng code cũng như gây khó khăn trong việc nâng cấp và cập nhật.
Nhược điểm Nhưng đối với một ứng dụng liên tục phát triển hay một ứng dụng lớn việc này khiến lượng code trên mỗi logic là rất lớn, các logic chồng chéo lên nhau rất khó cho việc đọc hiểu cũng như việc bảo trì. Việc kiểm thử ở mô hình này chiếm thời gian cũng như công sức nhiều hơn so với mô hình MVP.

Với những thông tin Devpro Việt Nam cung cấp trên đây chắc hẳn bạn đã có thêm những hiểu biết về MVP trong Android. Chúc các bạn thành công !

Load More Related Articles
Load More By admin
Load More In Android Studio

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Check Also

NHỮNG PLUGINS KHÔNG THỂ THIẾU CHO VSCODE

VSCode chiếm được nhiều cảm tình của dân lập trình web nhờ hiệu suất ổn định, dễ sử dụng, …