
Luồng Xử Lý Trong MVC Như Thế Nào?
MVC là một mẫu kiến trúc phần mềm hay mô hình thiết kế để tạo lập giao diện người dùng trên máy tính. Ngày nay mô hình MVC đã trở nên quá nổi tiếng, là một lập trình viên ít nhất chúng ta cũng đã một lần làm việc với nó. Vậy MVC có cấu trúc thế nào và hoạt động ra sao, cùng tìm hiểu trong bài viết dưới đây nhé.
Các thành phần của MVC gồm những gì?
MVC là viết tắt của Model – View – Controller, mỗi thành phần trong MVC đều có nhiệm vụ riêng.
- Model: đây là nơi tương tác trực tiếp với dữ liệu hoặc hệ quản trị cơ sở dữ liệu. Nó bao gồm các class chứa các phương thức kết nối với database, truy vấn, thêm/xóa/sửa dữ liệu.
- View: là nơi chứ giao diện tương tác với người dùng. Trong lập trình web thì nó là những file HTML, CSS,… nó đảm nhận hiển thị dữ liệu được gửi lên từ Model đầy đủ và chính xác nhất.
- Controller: chúng ta đã có dữ liệu, đã có nơi hiển thị dữ liệu, vậy giờ chỉ cần một bộ phận lấy dữ liệu từ Model và trả ra cho View. Vâng tôi đang nói đến Controller. Thật vậy, Controller là nơi nhận request từ người dùng, xử lý logic để lấy dữ liệu đã được trả về từ Model và gửi cho View hiển thị ra cho người dùng.
Luồng xử lý trong MVC
- Đầu tiên, client sẽ gửi một request tới server thông qua Controller.
- Controller tiếp nhận request, và xử lý luồng đi tiếp theo của yêu cầu. Trong trường hợp chỉ chuyển từ trang này sang trang khác mà không yêu cầu gửi và nhận dữ liệu thì lúc này Controller sẽ redirect(chuyển hướng) lại cho browser và kết thúc luồng. Lúc này luồng xử lý sẽ đi theo thứ tự 1-> 6 -> 7 -> 8.
- Nếu request của người dùng yêu cầu phải xử lý dữ liệu thì Controller gọi xuống Model để lấy dữ liệu. Lúc này Model sẽ tương tác với database để lấy dữ liệu, dữ liệu được Model gửi về Controller, Controller gọi đến View phù hợp với request kèm theo dữ liệu cho View, View sẽ lắp dữ liệu tương ứng vào HTML và gửi lại một HTML cho Controller sau khi thực hiện xong nhiệm vụ của mình. Cuối cùng Controller sẽ trả kết quả về Browser. Lúc này luồng xử lý sẽ đi từ 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8.
- Nếu request của người dùng chỉ yêu cầu dữ liệu nhưng không chuyển trang thì thay vì Controller sẽ trả dữ liệu về cho View thì Controller sẽ respone lại cho trình duyệt thông qua API, dữ liệu trả về thường sẽ là dạng JSON. Luồng xử lý lúc này sẽ là 1 -> 2 -> 3 -> 4-> 5-> 8.
Ưu điểm của MVC
- Tạo mô hình chuẩn cho dự án, giúp cho việc tiếp cận với ứng dụng dễ dàng hơn.
- Trình tự xử lý rõ ràng, nhiệm vụ riêng biệt, độc lập với các thành phần khác và các thành phần có thể tương tác được với nhau.
- Source code được tách bạch rõ ràng nên việc bảo trì code sẽ dễ dàng hơn.
Nhược Điểm của MVC
- Model sẽ phải xử lý rất nhiều nếu dữ liệu lớn và phức tạp.
- Đối với cái mô hình ứng dụng lớn và có độ phức tạp cao thì có lẽ MVC không còn khả dụng.
Tóm lại
Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
- User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi.
- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.
- Model nhận thông tin và thực thi các yêu cầu.
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model thông qua Controller và hiển thị lại cho người dùng.
Ngày nay một số framework được xây dựng nên từ mô hình MVC đang dần trở nên phổ biến, điển hình trong số đó là SpringMVC vả ASP .NET. Việc hiểu và nắm các khái niệm cơ bản về mô hình MVC là nền tảng để học cái framework sau này. Thanks ~
Post Comment