มีรูปแบบการออกแบบที่แตกต่างกันมากมายในบริเวณนี้
- Model View Presenter (mvp)
- Model View View Presenter (mvvp)
- Model View Controller
- รุ่น 2
และอื่น ๆ ในช่วงหลายปีที่ผ่านมาสิ่งเหล่านี้ได้ถูกหลอมรวมเข้าด้วยกันบดเปลี่ยนและนำไปใช้ในบริบทที่หลากหลาย สิ่งสำคัญเล็กน้อยที่นี่คือรูปแบบการออกแบบ MVC จากปี 1977 มีการเปลี่ยนแปลงค่อนข้างมากและไม่ได้เป็นรูปแบบการออกแบบที่ใช้โดยเฟรมเวิร์กเว็บของเซิร์ฟเวอร์อีกต่อไป เป็นตัวอย่างในการใช้งาน smalltalk ดั้งเดิม Model จะสังเกตเห็นมุมมองสำหรับการเปลี่ยนแปลงซึ่งไม่เป็นเช่นนี้เนื่องจากฝั่งเซิร์ฟเวอร์ไม่สามารถสังเกตองค์ประกอบ HTML ในเบราว์เซอร์ผู้ใช้ หากมุมมองเปลี่ยนไปมุมมองจะส่งคำขอไปยังตัวควบคุมซึ่งจะอัพเดตมุมมองแทน การใช้งาน MVC ดั้งเดิมไม่ได้ถูกติดตามอีกต่อไปเนื่องจากการอัปเดตโมเดลจะหมายความว่ามุมมองทั้งหมดที่ขึ้นอยู่กับโมเดลนั้นจะได้รับการอัปเดต
เฟรมเวิร์กเว็บที่ทันสมัยเป็นไปตามสถาปัตยกรรมแบบสามชั้นที่เรียบง่ายซึ่งรู้จักกันในชื่อ Model 2 Architecture
มีตัวอย่างแน่นอนของสถาปัตยกรรม MVC จริงบนเว็บ แต่สิ่งเหล่านี้มักเป็นฝั่งไคลเอ็นต์เท่านั้นเชื่อมต่อกับเซิร์ฟเวอร์ซึ่งตามสถาปัตยกรรม Model 2 เนื่องจากมุมมองเป็น xml และ json และไม่ได้สังเกตเห็นการเปลี่ยนแปลง ตัวอย่างของสถาปัตยกรรม mvc pure ฝั่งไคลเอ็นต์คือ Sencha Touch และ Sproutcore
หากคุณมี MVC ในเบราว์เซอร์เช่น mvc บนเซิร์ฟเวอร์และ mvc เช่นเดียวกับชั้นข้อมูลคุณจะมีการนำ mvc แบบลำดับชั้นมาใช้
บันทึก. ฉันได้พูดถึงกรอบเว็บเท่านั้นการใช้ MVC อื่น ๆ เช่น java swing และ Flex มีความแตกต่างของการใช้งานอื่น ๆ