Mô hình MVC (Model-Control-View)

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Khung làm việc và ứng dụng xây dựng hệ thống quản trị đơn nhãn hiệu (Trang 32 - 35)

Chương 2: CÔNG NGHỆ, PHƯƠNG PHÁP VÀ CÔNG CỤ

2.2. Mô hình MVC (Model-Control-View)

MVC là một kiến trúc phần mềm đƣợc chia ba phần tách biệt: Model (mô hình dữ liệu), View (phần hiển thị hay giao diện người dùng), Controlller (phần điều khiển hay điều khiển chức năng) của một thành phần hay một ứng dụng thành, vì thế khi thay đổi trên một trong ba thành phần đó sẽ ảnh hưởng ít nhất đến các thành phần còn lại.

MVC thường được hiểu là một mẫu thiết kế phần mềm. tuy nhiên MVC mang nhiều ý nghĩa về kiến trúc phần mềm hơn. MVC đƣợc tổng hợp từ nhiều các mẫu thiết kế nhỏ hơn: View áp dụng mẫu thiết kế Composite Pattern, giao tiếp giữa View và Model sử dụng mẫu Observer Pattern; Controller sử dụng mẫu Strategy Pattern hay command Pattern; và một số mẫu khác nhƣ: Mediator Pattern;

Decorator Pattern, Adaptor Pattern,…

a. Model (Mô hình dữ liêu)

Model nắm giữ các dữ liệu, thực hiện các chức năng liên quan đến việc truy cập dữ liệu hay thay đổi các dữ liệu của chương trình. Model thường được chia thành hai hệ thống con: Các trạng thái nội tại của hệ thống và các hành động làm thay đổi trạng thái của hệ thống.

Mỗi một ứng dụng có một Model khác nhau. Ví dụ, Model của một thanh cuộn (Scrollbar) có thể chứa các thông tin hiện tại của nó, giá trị lớn nhất, nhỏ nhất hay độ rộng của thumb. Model có thể chịu trách nhiệm giao tiếp một cách gián tiếp với View và Controller. Gián tiếp có nghĩa là Model không hề biết các View và Controller của nó – nó không duy trì các tham chiếu đến chúng. Thay vào đó, Model gửi đi các thông báo đến View và Controller khi có sự thay đổi trạng thái của hệ thống.

b. View (Hiển thị hay giao diện người dùng)

View xác định việc hiển thị trực quan dữ liệu của Model. View chịu trách nhiệm cập nhật những thay đổi của nó trên màn hình. View có thể nhận những thông báo gián tiếp từ Model hoặc các thông điệp từ Controller.

c. Controller (Điều khiển hay Quản lý chức năng)

Controller là hành vi của ứng dụng. Nó tập trung việc nhận các yêu cầu của người dùng, chuyển các yêu cầu của người dùng đến chức năng xử lý yêu cầu của Model và chuyển kết quả trả về cho View hiển thị. Controller có thể nhận thông điệp từ View và những thông điệp gián tiếp từ Model.

Hình dưới chỉ ra Model, View, Controller làm việc với nhau như thế nào để tạo ra thanh cuộn. Model nắm giữ thông tin về giá trị nhỏ nhất, lớn nhất. View xác định chính xác vẽ thanh cuộn. Controller chịu trách niệm xử lý các sự kiện chuột.

Kết quả thanh cuộn mang đầy đủ chức năng của MVC.

Hình 2.2 Mô hình MVC của thanh cuộn

2.2.2. Sự tương tác giữa các thành phần của MVC

Trong kiến trúc MVC, Model chịu trách nhiệm thông báo cho View biết khi có sự thay đổi và cho phép View lấy các thông tin về trạng thái và Controller có thể truy cập vào các chức năng của Model. View lấy dữ liệu từ Model và chịu trách nhiệm hiển thị chúng. Nó tự động cập nhật việc hiển thị khi có sự thay đổi trong Model. Đồng thời View cũng làm nhiệm vụ chuyển các yêu cầu của người dùng đến Controller. Controller lựa chọn chức năng xử lý yêu cầu của người dùng và lựa chọn thành phần hiển thị tiếp theo dựa vào tương tác của người dùng hoặc dựa vào kết quả xử lý trả về từ Model.

Hình 2.3 Mô hình tương tác MVC

Một ứng dụng thông thường sử dụng một bộ điều khiển cho một nhóm các chức năng liên quan nào đó. Một số ứng dụng khác có thể sử dụng nhiều bộ điều khiển độc lập cho mỗi loại người dùng vì thế có thể có nhiều View khác nhau ứng với mỗi loại người dùng khác nhau.

2.2.3. Một số đặc điểm của MVC

Một điều dễ thấy đó là View thường xuyên được thay đổi theo thời gian cho phù hợp với từng loại người dùng, trong khi Model thì lại rất ít khi thay đổi. Do đó, việc phân tách View và Model giữ cho Model không bị thay đổi khi viết lại giao diện. Hơn nữa, hoạt động của mỗi chức năng trong hệ thống thường là phức tạp và khó hiểu cho tới khâu thực thi cuối cùng. Vì thế, trong một số dự án, các View có

thể đƣợc thiết kế ngay trong các khâu đầu tiên của quá trình thiết kế còn Model sẽ đƣợc hoàn thiện dần trong suốt quá trình phát triển.

Mặc dù Model và Controller là hai khái niệm riêng rẽ trong kiến trúc MVC nhƣng thực tế chúng lại có mối quan hệ rất chặt chẽ. Mỗi thay đổi liên quan đến Model sẽ tạo ra một thay đổi tương ứng đến Controller.

Kiến trúc MVC cho phép một ứng dụng có thể đƣợc xây dựng trên nhiều ngôn ngữ lập trình khác nhau. Do Model và Controller là độc lập với View nên View chỉ cần thông báo cho Controller các sự kiện người dùng và cập nhật những thay đổi của Model.

Những ƣu điểm nổi bật của mô hình MVC

Đặc tính Mô tả

Khả năng mở rộng

Có thể mở rộng các chức năng của hệ thống thông qua việc bổ sung các Module mới tại View mà không phải xây dựng lại toàn bộ ứng dụng

Khả năng sử dụng lại ứng dụng

Các ứng dụng có thể đƣợc sử dụng lại thay vì phải phát triển mới khi có nhu cầu thay đổi hoặc bổ sung chức năng Tích hợp với các hệ

thống có sẵn

Dễ dàng xây dựng các cầu nối với các hệ thống khác do hệ thống đƣợc xây dựng theo Module và đƣợc tổ chức tốt Hỗ trợ nhiều loại cơ

sở dữ liệu

Với việc tách riêng phần Data Access, có thể sử dụng nhiều cơ sở dữ liệu khác nhau

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Khung làm việc và ứng dụng xây dựng hệ thống quản trị đơn nhãn hiệu (Trang 32 - 35)

Tải bản đầy đủ (PDF)

(86 trang)