Mô hình MVP (Model View Presenter) là một mô hình kiến trúc có dẫn xuất từ MVC (Model View Controller). Mô hình này hiện đang được các nhà lập trình viên mobile dùng nhiều trong trong lập trình Android.
Thế nhưng hiện bạn vẫn còn băn khoăn và mơ hồ về mô hình Model View Presenter cũng như bạn đang muốn thiết lập mô hình MVP trên android? Vậy bài viết dưới đây của Azonnal sẽ giới thiệu về mô hình MVP và cách thiết kế mô hình này chi tiết nhất. Hãy cùng theo dõi nhé.
MVP là gì?
MVP trong lập trình Android viết tắt của Model – View – Presenter là một mô hình kiến trúc hướng giao diện người dùng. Mô hình này giúp tách tầng hiển thị ra khỏi tầng dữ liệu trong mô hình MVC. Hơn nữa, cũng giúp cho việc kiểm thử đơn vị (Unit testing) trở nên đơn giản hơn. Do vậy mà mô hình kiến trúc này đang được rất nhiều lập trình viên lựa chọn sử dụng.
Mô hình MVP cho phép tách biệt tầng hiển thị (Presenter) với tầng dữ liệu (Model). Do đó, tương tác trên giao diện khác với việc biểu diễn ở trên màn hình (View). Hay, toàn bộ logic sẽ được tách rời và đưa vào tầng hiển thị (Presenter). Lý tưởng nhất trong thiết kế mô hình là cùng một logic dùng được cho nhiều View và có thể hoán đổi cho nhau.
Lý do nên dùng Model View Presenter
Trong Android, trên thực tế sẽ có phát sinh một vấn đề. Đó là các cơ chế xử lý tương tác được kết hợp chặt chẽ bởi giao diện người dùng với xử lý, truy cập dữ liệu.
Việc kết hợp chặt chẽ này giúp giảm lượng code, hay gộp các xử lý, logic trong ứng dụng vào cùng một chỗ. Tuy nhiên, nó sẽ không thích hợp với một ứng dụng lớn hoặc một ứng dụng liên tục được cập nhật. Bởi việc này khiến cho lượng code lớn hơn, các logic xen lẫn và chồng chéo lên nhau. Từ đó rất khó để đọc hiểu hay bảo trì và mở rộng.
Ứng dụng cần thêm rất nhiều tài nguyên nhưng làm tính khả chuyển cũng tăng gấp nhiều lần. Do vậy, phân tầng và phân lớp của ứng dụng có thể giảm hiệu năng. Không chỉ vậy, nó còn mở rộng khả năng cho phép kiểm thử đơn vị trở nên dễ dàng hơn. Bởi thế, việc cân bằng giữa hiệu năng và khả năng phát triển, bảo trì là rất quan trọng.
Việc kiểm thử là một vấn đề khó khăn trong lập trình Android vì mối liên kết giữa giao diện, dữ liệu và logic vô cùng chặt chẽ. Mô hình MVP sẽ giúp tách biệt giao diện và dữ liệu và chia ứng dụng ra thành nhiều lớp khác nhau. Từ đó, việc kiểm thử đơn vị có thể tiến hành độc lập và chúng ta cũng có thể kiểm thử, đo đạc một cách tối đa các logic của ứng dụng với MVP.
Mô hình MVP bao gồm?
Mô hình MVP có rất nhiều biến thể và phương pháp triển khai. Và ai cũng có thể điều chỉnh mô hình này theo nhu cầu và cách thức thuận tiện nhất. Tuy nhiên, tất cả vẫn cần dựa vào các quy tắc chung trên Model – View – Presenter.
- Model: Dùng để mô tả, chứa dữ liệu, phụ trách xử lý tầng dữ liệu giống với các mô hình khác.
- View: là giao diện cho người dùng, hiển thị dữ liệu thụ động và tiếp nhận tương tác từ người dùng, sau đó đưa tới Presenter để xử lý.
- Presenter: Tầng hiển thị đảm nhiệm vai trò như một cầu nối giữa View và Model. Khi người dùng tương tác với View, Presenter sẽ tiếp nhận và cập nhật Model. Sau đó, Presenter lấy dữ liệu từ Model đã cập nhật, định dạng và truyền tới View để hiển thị. Presenter cũng quyết định luôn điều gì sẽ xảy ra khi người dùng tương tác với giao diện.
Thiết kế mô hình MVP trong Android
Mô hình MVP có thể được điều chỉnh theo nhu cầu và cách thức của người dùng. Về cơ bản thì sẽ khác nhau ở số lượng các chức năng mà Presenter đảm nhận.
Trên thực tế, chưa có tiêu chuẩn chính xác nào cho việc triển khai Model View Presenter. Do đó, dưới đây sẽ là một demo cơ bản về xử lý màn Login theo mô hình MVP.
Bước 1: Đầu tiên bạn cần tạo lớp User.class nhằm để hiển thị dữ liệu.
Bước 2: Tạo 1 interface tên là LoginView có chứa các cách thức tác động tới giao diện LoginView.class.
Bước 3: Tạo các phương thức xử lý dữ liệu trong LoginPresenter.class.
Bước 4: Cuối cùng, bạn chỉ cần bắt đầu các tương tác và xử lý ở LoginActivity.class.
Mô hình MVP với ưu điểm là có cấu trúc rõ ràng và trực quan, cũng dễ dàng để kiểm thử đơn vị cho Presenter. Do đó, cho đến nay mô hình này vẫn được dùng rất phổ biến trong cộng đồng Android.
Tuy nhiên, mô hình này cũng có nhược điểm là sẽ lớn dần theo thời gian chẳng hạn như Presenter cũng sẽ lớn lên khi có thêm các logic nghiệp vụ. Do đó, người dùng sẽ khó kiểm soát cũng như là chia nhỏ đoạn code nếu Presenter quá lớn.
Dù vậy thì MVP vẫn là một mô hình được đánh giá tốt trong lập trình Android. Tùy vào trường hợp, dự án mà bạn có thể lựa chọn mô hình này cho hiệu suất cao. Bạn còn chần chừ gì nữa? Hãy thiết lập ngay mô hình MVP trên Android này để thiết kế ứng dụng một cách tốt nhất nhé.
Hy vọng bài viết này đã giúp bạn có được cái nhìn khái quát nhất về mô hình MVP này. Chúng tôi sẽ tiếp tục mang đến nhiều điều bổ ích hơn nữa ở những bài viết sau. Hãy đồng hành cùng chúng tôi để có thể biết thêm thật nhiều thông tin hữu ích về công nghệ lập trình nhé. Chúc các bạn một ngày tốt lành!
>>> Xem thêm:
- So sánh giữa Android và IOS. Nên học lập trình trên nền tảng nào?
- Kinh nghiệm học lập trình App mobile đạt hiệu quả
- Top 5 phần mềm thiết kế giao diện App miễn phí tốt nhất