Tải bản đầy đủ (.docx) (3 trang)

TỔNG QUAN VỀ MÔ HÌNH MODEL-VIEW-CONTROLLER

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (62.71 KB, 3 trang )

TỔNG QUAN VỀ MÔ HÌNH MODEL-VIEW-CONTROLLER
(MVC).
I.Giới thiệu mô hình MVC:
1.Thiết kế MVC:
-MVC là viết tắt của Model-View-Controller. Phương pháp thiết kế MVC là
phương pháp chia nhỏ một ứng dụng thành nhiều lớp hoặc chia nhỏ phần giao diện
người dùng (User Interface) của một ứng dụng thành 3 phần chính là Model, View
và Controller.
-Model (tạm dịch là phần “Mô hình”) là một đối tượng hoặc tập hợp các đối
tượng biểu diển cho phần dữ liệu của chương trình, ví dụ: các dữ liệu được lưu
trong cơ sở dữ liệu hay từ các hệ thống ứng dụng khác (như mail…).
-View (tạm dịch là phần “Hiển thị”): Là phần giao diện với người dùng, bao
gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại,
chọn lựu…, để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác
khác đối với dữ liệu trong hệ thống.
-Controller (tạm dịch là phần “Điều khiển”): Là phần điều khiển toàn bộ
logic về hoạt động của giao diện, tương tác với thao tác của người dùng (từ chuột,
bàn phím và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu
vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu
tới người dùng.
-Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều
khiển và chức năng truy cập dữ liệu của chương trình được chia thành các phần
riêng biệt. Java là một ngôn ngữ lập trình hướng đối tượng thuần túy nên việc áp
dụng MVC vào các phần mếm viết bằng Java rất dễ dàng và thuận tiện. Có hai
hình mẫu chính của phương pháp thiết kế MVC trong Java là MVC model 1 và
MVC model 2.Trong MVC model 1, các trang JSP đóng vai trò “Hiển thị” (View)
và “Điều khiển” (Controller). Có thể có nhiều trang JSP khác nhau đóng các vai trò
khác nhau.
-Thao tác của người dùng trên trình duyệt web được gửi tới một trang JSP.
Trang JSP này sẽ khởi tạo một hoặc nhiều Java Bean (nếu cần thiết), truyền các
lệnh cần thi hành tới Java Bean (không phải Enterprise Java Bean).


-Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhập dữ liệu,
trang JSP ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóng luôn vai
trò View), hoặc chọn một trang JSP khác để hiện dữ liệu từ Bean (JSP ban đầu
đóng luôn vai trò Controller). Trong một thiết kế tốt, để đảm bảo việc tách rời phần
trình bày và logic của chương trình, trang JSP nhận yêu cầu chỉ đóng vai trò “Điều
khiển” (Contronller).
-MVC model 1 có một nhược điểm là phần logic điều khiển được viết trong
trang JSP, như vậy phần chương trình Java phức tạp dùng để điều khiển sẽ bị lẫn
vào trong mã HTML dùng để trình bày. Độ phức tạp của chương trình càng cao, thì
trang JSP càng khó phát triển và bảo trì. Hơn nữa, trong các dự án phức tạp, phần
hiển thị do người thiết kế web giỏi về HTML và đồ họa thực hiện, còn phần điều
khiển được người chuyên về lập trình thực hiện. Dùng JSP làm phần điều khiển sẽ
khó phân ranh giới trách nhiệm giữa nhóm thiết kế đồ họa và nhóm lập trình. Để
khắc phục nhược điểm này, MVC model 2 ra đời. Trong MVC model 2, một hoặc
nhiều servlet (thường là một) đóng vai trò điều khiển, các Java Bean đóng vai trò
mô hình và các trang JSP đóng vai trò hiển thị.
-Trong model 2, các logic phức tạp của chương trình được viết hoàn toàn
trong các servlet (chương trình Java). Phần hiển thị chỉ gồm các trang JSP với một
vài mã đơn giản để lấy dữ liệu có sẵn, không có logic phức tạp, vì thế hoàn toàn có
thể giao cho người thiết kế web. Các yêu cầu của người dùng được gửi từ trình
duyệt web tới servlet. Servlet sẽ khởi tạo Java Bean (nếu cần thiết), ra lệnh thu
nhập, cập nhập thông tin. Khi Java Bean hoàn thành công việc, servlet sẽ chọn
trang JSP thích hợp để hiện thông tin trong Java Bean cho người dùng. Đây là cách
sử dụng MVC rất hiệu quả trong Java. Tất nhiên, sử dụng MVC model 2 một cách
hoàn toàn cứng nhắc, phần “Điều khiển” chỉ dùng servlet, phần “Hiển thị” chỉ
dùng JSP sẽ dãn đến một vài trường hợp kém hiệu quả, nhất là khi các yêu cầu từ
trình duyệt web chỉ đòi hỏi việc hiển thị thông tin. Trong trường hợp này, gửi thẳng
yêu cầu hiển thị từ trình duyệt web tới trang JSP sẽ hiệu quả hơn. Trong cách áp
dụng MVC này, các yêu cầu có liên quan đến logic chương trình hoặc truy cập dữ
liệu sẽ gửi tới servlet controller, còn các yêu cầu chỉ liên quan tới hiển thị sẽ được

gửi tới JSP controller.


×