Vì vậy, có rất nhiều mẫu thiết kế khác nhau trong lĩnh vực này.
- Trình bày mô hình xem (mvp)
- Mô hình Chế độ xem Chế độ xem (mvvp)
- Bộ điều khiển xem mô hình
- Mô hình 2
và như thế. Trong những năm qua, những thứ này đã được đan xen, trộn lẫn với nhau, thay đổi và áp dụng trong nhiều bối cảnh khác nhau. Điều quan trọng ở đây là mẫu thiết kế MVC từ năm 1977 đã thay đổi khá nhiều và không còn là mẫu thiết kế được sử dụng bởi các khung web của máy chủ. Như một ví dụ trong triển khai smalltalk ban đầu, Model sẽ quan sát khung nhìn để thay đổi, điều này không còn xảy ra nữa vì các máy chủ chỉ đơn giản là không thể quan sát các phần tử html trong trình duyệt của người dùng. Thay vào đó, nếu khung nhìn thay đổi, khung nhìn sẽ gửi yêu cầu đến bộ điều khiển, sau đó sẽ cập nhật khung nhìn. Một lần nữa, việc triển khai MVC ban đầu không được tuân thủ, vì một bản cập nhật cho mô hình sẽ ngụ ý rằng tất cả các khung nhìn phụ thuộc vào mô hình sẽ được cập nhật.
Các khung web hiện đại tuân theo kiến trúc ba tầng đơn giản còn được gọi là kiến trúc Mô hình 2.
Tất nhiên có các ví dụ về kiến trúc MVC thực trên web, nhưng chúng thường chỉ ở phía máy khách, được kết nối với máy chủ theo kiến trúc Mô hình 2, vì các khung nhìn là xml và json và không được quan sát để thay đổi. Ví dụ về kiến trúc mvc thuần phía khách hàng là Sencha Touch và Sproutcore.
Nếu bạn có MVC trong trình duyệt, mvc như trên máy chủ và mvc như lớp dữ liệu, bạn có triển khai mvc phân cấp.
Ghi chú. Tôi chỉ nói về các khung web, các triển khai khác của MVC như java swing và Flex có các khác biệt triển khai khác.