MVC định nghĩa trên Wiki.

Đây là một phần trong bài viết Phân tích tìm hiểu MVC là gì?, vì lý do tránh bài viết quá dài nên tôi đã tách nó ra thành các phần nhỏ, và khiến bài viết của tôi được tổng quan hơn, dễ hiểu hơn. Trong bài này tôi xin tóm tắt một số ý chính về cách diễn giải MVC trên từ điển bách khoa toàn thư mở Wiki.

Giải thích về MVC trên Wiki.

"Model–view–controller (MVC) is a software architectural pattern mostly (but not exclusively) for implementing user interfaces on computers. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user."

Tôi xin tạm dịch là "MVC là viết tắt của ba từ Model - View - Controller, nó là một mẫu kiến trúc phần mềm phổ biến (nhưng không độc quyền) được sử dụng để phát triển các giao diện người dùng trên máy tính. Nó chi phần mềm ứng dụng thành 3 phần và có sự kết nối giữa chúng, cách này giúp cho các thông tin nội bộ được biểu thị qua thông tin đại diện được trình bày hoặc được sự cho phép trình bày bởi người sử dụng."

Phần thứ 2 trong định nghĩa có vẻ hơi khó hiểu bạn có thể tạm hiểu thế này nếu áp dụng mẫu MVC trong phần mềm ứng dụng thì nó sẽ cho phép bạn xác định các thông tin thể hiện cho người dùng thấy còn các thông tin nội bộ hay bên trong ứng dụng người dùng sẽ không thấy, lấy ví dụ thực tế chiếc máy tính dùng để cộng trừ như chia khi ta nhấn 1 + 1 thì màn hình sẽ hiển thị kết quả là 2, một số máy có thể thể hiện rõ ràng hơn là 1+1=2, đây chính là thông tin hiển thị ra cho người dùng, còn thông tin làm sao để máy tính biết được 1+1 bằng mày thì là thông tin nội bộ (vd chỉ mang tính giải thích :)).

Một câu rất quan trọng trong định nghĩa của Wiki "Traditionally used for desktop graphical user interfaces (GUIs), this architecture has become extremely popular for designing web applications." Tôi tạm dịch là "Theo truyền thống nó được sử dụng cho giao diện đồ họa người dùng (GUI) trên máy vi tính để bàn, và dần dần mẫu mô hình kiến trúc này trở nên phổ biến trong việc thiết kế ứng dụng web".

Lúc đầu tôi cũng chả hiểu cho lắm nhưng khi phân tích sự khác biệt giữa các định nghĩa MVC thì tôi nhận ra câu trên còn có ý muốn nói MVC được xây dựng với mục tiêu ban đầu là áp dụng cho việc thiết kế giao diện đồ họa người dùng (GUI) trên máy vi tính để bàn và các định nghĩa trong Wiki này đã là cũ nên có chút sự khác biệt so với các định nghĩa khác về MVC.

Các thành phần trong MVC:

  • The model directly manages the data, logic and rules of the application.
  • Modle: được dùng để quản lý dữ liệu, logic (có thể hiểu theo nghĩa quy luật, quy tắt tất yếu) và các bộ quy tắc của ứng dụng.
  • A view can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.
  • View: đại diện cho đầu ra hay sự trình bày của thông tin, ví dụ như thông tin được hiểu thị ra dưới dạng biểu đồ hoặc sơ đồ. Cung cấp nhiều chế độ xem khác nhau với cùng một thông tin, ví như là trình bày thông tin dưới dạng biểu đồ hình cột kèm thông thông tin số liệu chi tiết dưới dạng bảng.
  • The third part, the controller, accepts input and converts it to commands for the model or view.
  • Controller: Tiếp nhận đầu vào (từ người dùng) và chuyển đổi nó thành các câu lệnh cho Model hoặc View xử lý.

Mối liên kết giữa các thành phần trong MVC:

  • A model stores data that is retrieved according to commands from the controller and displayed in the view.
  • Model: lưu trữ dữ liệu được lấy ra theo lệnh của Controller và hiển thị chúng trong View.
  • A view generates an output presentation to the user based on changes in the model.
  • View: tạo ra các trình bày hiển thị đầu ra cho người sử dụng dựa trên những thay đổi từ Model.
  • A controller can send commands to the model to update the model's state (e.g. editing a document). It can also send commands to its associated view to change the view's presentation of the model (e.g. by scrolling through a document).
  • Controller: gửi các câu lệnh tới Model để cập nhập trang thái của của Model (vd chỉnh sửa document) hiểu đơn giản là đưa ra các lệnh thao tác để Model xử lý sau đó sẽ trả về trạng thái (kết quả)  sau khi xử lý. Nó cũng có thể gửi các câu lệnh tới View để thay đổi cách trình bày dữ liệu của Model (vd bằng cách di chuyển thông qua một tài liệu) chả hiểu nói gì luôn lấy cái ví dụ chuyển từ dạng văn bảng sang dạng biểu đồ không phải dễ hiểu hơn à.

Một mô hình phổ biến mô tả về sự liên kết các thành phần trong MVC.



Như bạn thấy qua sơ đồ mẫu mô hình kiến trúc MVC nay được vận hành thông qua 4 bước:
  1. User gửi yêu cầu tới Controller.
  2. Controller sẽ gửi các câu lệnh điều khiển tới Modle dựa trên yêu cầu của User.
  3. Model sẽ tiếp nhận các lệnh và xử lý chúng và gửi thông tin sau khi xử lý tới View.
  4. View sẽ xác định những thông tin, hay cách thức hiển thị thông tị tới người sử dụng dựa trên các kết quả nhận được từ model.


Writer: +Bui Ngoc Son 







No comments:

Post a Comment