Các mẫu kiến trúc phía Client

4:51 05/06/2024

Bạn đã có thể nghe về MVC, MVP, MVVM, nhưng những mô hình kiến trúc này được sử dụng như thế nào trong thực tế? Hãy cùng tìm hiểu những thuật ngữ này tại bài viết dưới đây nhé!

Lịch sử

MVC (Model-View-Controller) có lịch sử gần nửa thế kỉ. Đó là cách tiếp cận đột phá bằng cách phân tách phần UI và dữ liệu, và phần điều khiển logic nhằm cho phép lập trình viên có thể tập trung vào từng phần một cách độc lập. Nhưng với sự phát triển nhanh chóng của công nghệ, cũng như ngày càng phức tạp của các ứng dụng mới. Chúng ta cần các mô hình kiến trúc mới. Điểm chung của những mô hình này là gì?

Chúng đều có chung “V” – View, đó là bộ mặt của ứng dụng, chịu trách nhiệm hiển thị nội dung và tiếp nhận đầu vào từ người dùng.

Tiếp theo là “M” – Model, là bộ não quản lý dữ liệu và các logic nghiệp vụ. Đây là phần sẽ chăm sóc dữ liệu và thao tác lên dữ liệu.

Điều kì diệu xảy ra tại “người phiên dịch” – Controller, Presenter, hoặc View-Model. Là thành phần trung gian giữa View và Model.

Ví dụ

Khi người dùng cập nhật hình đại diện.

Ở mô hình MVC

  • Tại View: Người dùng lựa chọn hình ảnh, nhấn upload (hoặc một tác vụ tương tự)
  • Controller nhận được yêu cầu nói với Model cập nhật dữ liệu vào CSDL
  • Model sau khi cập nhật dữ liệu sẽ báo lại với Controller
  • Controller ra tín hiệu để View cập nhật lại dựa vào dữ liệu mới

Ở mô hình MVP

Ở mô hình MVVM

Trong mô hình MVVM-C

Trong mô hình VIPER


Nên chọn mô hình kiến trúc nào?

Việc Nên chọn mô hình kiến trúc nào phụ thuộc vào độ phức tạp của ứng dụng/dự án mà bạn thực hiện.

  • MVC: phù hợp cho dự án nhỏ, đặt tiêu chí đơn giản lên hàng đầu.
  • MVP: phù hợp với dự án mà bạn muốn tối ưu khả năng kiểm thử.
  • MVVM và MVVM-C: phù hợp cho các dự án lập trình reactive, sử dụng data-binding, đặc biệt là khi sử dụng với các framework hiện đại.
  • VIPER: phù hợp cho các dự án lớn, phức tạp khi mà sự phân tách rõ ràng các thành phần và khả năng mở rộng là yếu tố quan trọng nhất.

(nguồn tham khảo: System Design Interview by Alex Xu & Sahn Lam)

Giảng viên Lê Thị Anh Đào
Bộ môn CNTT
FPT Polytechnic Đà Nẵng

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.