"Chào, Amigo!"

"Chào, Bilaabo!"

"Bạn đã là một lập trình viên giỏi. Vì vậy, hôm nay chúng ta sẽ có một bài học về MVC."

"MVC là viết tắt của ModelViewController . Đó là một mẫu thiết kế kiến ​​trúc dành cho các ứng dụng lớn, trong đó ứng dụng được chia thành ba phần."

"Phần đầu tiên chứa tất cả logic nghiệp vụ của ứng dụng . Phần này được gọi là mô hình . Nó chứa mã thực hiện mọi thứ mà ứng dụng được tạo ra để thực hiện. Phần này ít phụ thuộc nhất vào các phần khác."

"Phần thứ hai chứa mọi thứ liên quan đến việc hiển thị dữ liệu cho người dùng . Phần này được gọi là dạng xem . Nó chứa mã kiểm soát việc hiển thị các cửa sổ, trang, tin nhắn, v.v."

"Phần thứ ba chứa mã xử lý hành động của người dùng . Mọi hành động của người dùng nhằm thay đổi mô hình sẽ được xử lý ở đây. Phần này được gọi là Bộ   điều khiển ."

"Cách tiếp cận này cho phép bạn tạo ba thứ một cách độc lập:  logic của chương trình (mô hình) , cơ chế hiển thị dữ liệu của chương trình cho người dùng (chế độ xem)trình xử lý cho đầu vào/hành động của người dùng (bộ điều khiển) ."

"Các ứng dụng thường có nhiều chế độ xem . Điều này là bình thường. Bạn có thể xem chính xác cùng một dữ liệu trong Excel dưới dạng cả số và sơ đồ. Trong trò chơi, bạn có thể xem các sự kiện từ chế độ xem người thứ nhất, người thứ ba hoặc bản đồ, cùng nhiều chế độ xem khác . Tất cả những thứ này là các chế độ xem khác nhau cho một Mô hình duy nhất ."

"Tất cả mã quyết định những gì sẽ thay đổi trong mô hình để đáp ứng với hành động của người dùng được tập hợp vào Bộ điều khiển . Ví dụ: nếu người dùng quyết định đóng chương trình, thì bạn cần lưu dữ liệu của mô hình vào một tệp trên đĩa. Hoặc nếu người dùng nhập dữ liệu mới, thì bạn cần thêm dữ liệu đó vào mô hình. Sau đó, mô hình sẽ thông báo cho tất cả các chế độ xem về sự thay đổi dữ liệu, vì vậy chúng chỉ hiển thị trạng thái hiện tại của dữ liệu."

"Nói lại đi."

"Từ quan điểm của một nhà phát triển Java, chúng tôi có thể nói rằng mô hình, dạng xem và bộ điều khiển là ba nhóm lớp trong đó:"

" a)  mỗi phần đều có mục đích riêng;"

" b)  mối quan hệ giữa các lớp của một nhóm duy nhất là rất mạnh mẽ;"

" c)  mối quan hệ giữa các nhóm rất yếu;"

" d)  cách thức mà các bộ phận giao tiếp với nhau được quy định chặt chẽ."

"Và đây là một cách khác để hình dung nó:

MVC-1

"Mô hình là phần độc lập nhất của hệ thống . Nó không phụ thuộc vào chế độ xem hoặc bộ điều khiển. Mô hình không thể sử dụng các lớp từ chế độ xem hoặc nhóm bộ điều khiển(!)."

"Hạn chế chính của chế độ xem là nó không thể thay đổi mô hình . Các lớp chế độ xem có thể truy cập vào mô hình để lấy dữ liệu hoặc đăng ký các sự kiện, nhưng các lớp chế độ xem không thể thay đổi mô hình."

"Hạn chế chính của bộ điều khiển là nó không hiển thị dữ liệu . Bộ điều khiển xử lý hành động của người dùng và sửa đổi mô hình cho phù hợp."

"Nhưng tại sao tôi cần cái này?"

"Thực tế là bạn không sử dụng nó ngay bây giờ, không có nghĩa là bạn sẽ không sử dụng nó trong tương lai gần. Bạn đang học ở đây để kiếm việc làm. Và ngay cả khi kiến ​​thức này không hữu ích trong khi học tập, nó chắc chắn sẽ có ích trong khi làm việc."

"Sau tất cả, các dự án thực tế và các cuộc phỏng vấn vẫn đang chờ đợi bạn..."

"Bây giờ chúng ta đang ở đây nói chuyện với nhau, nhưng có lẽ trong một tháng nữa bạn sẽ đi làm rồi."

"Anh hoàn toàn đúng, Bilaabo. Tôi sẽ lắng nghe anh cẩn thận."

"Mẫu MVC rất phổ biến trong kiến ​​trúc ứng dụng. Bạn cần biết nó để không đột nhiên bắt đầu thêm các lớp khung nhìn vào mô hình vì bạn thấy cách đó thuận tiện hơn."

"Điều quan trọng nhất trong bất kỳ dự án nào là kiến ​​trúc của nó.  Nhiệm vụ của bạn ở giai đoạn này không phải là tạo ra một kiến ​​trúc tốt, mà là học cách hiểu kiến ​​trúc của người khác. Bạn vẫn sẽ cần phải phát triển cho một vài năm trước khi bạn tạo ra sản phẩm của riêng mình. Nhưng bạn cần phải hiểu những gì người khác đã tạo ra. Ngay lập tức."

"Khi một ứng dụng sử dụng một kiến ​​trúc tiêu chuẩn, mọi thứ sẽ trở nên rõ ràng hơn nhiều. Khi biết kiến ​​trúc, bạn biết mọi thứ ở đâu, mọi thứ tương tác như thế nào, đại khái là chương trình hoạt động như thế nào, thêm lớp cần thiết ở đâu và tìm kiếm nguyên nhân của lỗi ở đâu. một lỗi."

"Tuy nhiên, nếu bạn không quen thuộc với các cách tiếp cận tiêu chuẩn đối với kiến ​​trúc, thì ngay cả kiến ​​trúc tốt nhất cũng sẽ không cho bạn biết bất cứ điều gì. Bạn sẽ giống như một nông dân thời trung cổ nhìn vào một chiếc ô tô mới. Một chiếc ô tô tiêu chuẩn."

"Tôi hiểu rồi. Cảm ơn vì bài học thú vị, Bilaabo."

"Cuối cùng, đây là một liên kết tốt mà bạn chắc chắn nên xem qua:"

Liên kết đến tài liệu bổ sung