โต้ตอบผู้ใช้ที่มีดูแต่ดูต้องสื่อสารการกระทำที่จะควบคุม ควบคุมอาจปรับปรุงรุ่นแต่ก็ไม่จำเป็นต้องใช้กับทุก / การเปลี่ยนแปลงใด ๆ
คำอธิบายที่ฉันให้จะขึ้นอยู่กับประสบการณ์ส่วนตัวของฉันกับการใช้งาน. NET ของ MVC การใช้งานของคุณอาจแตกต่างกัน
ควบคุมคือที่การกระทำที่มีการประมวลผลพื้นชั้นธุรกิจ คอนโทรลเลอร์ที่เรียบง่ายจะไม่ทำอะไรมากไปกว่าการรับข้อมูลจาก Model ไปยังฟีดไปที่ View คอนโทรลเลอร์ที่ซับซ้อนจะดำเนินการทุกประเภทขึ้นอยู่กับการจัดการความปลอดภัยการพิสูจน์ตัวตนการอนุญาตการลงทะเบียนและสิ่งอื่น ๆ อีกมากมาย
ดูเท่านั้นที่ควรจะต้องรับผิดชอบในการแสดงข้อมูลในรูปแบบที่ผู้ใช้สามารถเข้าใจ อาจมีบางส่วนที่นี่กับทั้งตัวควบคุมและรูปแบบเป็นสิ่งเช่นแอปพลิเคชันหน้าเดียว (SPA) จะมีข้อเสนอแนะการตรวจสอบข้อมูลสำหรับผู้ใช้ ข้ามสายอื่น ๆ จะขมวดคิ้วอย่างหนักเมื่อ
ตัวแบบเกี่ยวข้องกับข้อมูล รวมถึงการตรวจสอบข้อมูล (ถ้ามี) การจัดเก็บและดึงข้อมูลได้รับการจัดการในชั้นนี้
UPDATE
ดูเหมือนจะมีความสับสนรอบ ๆ ที่ทำอะไรเมื่อ ฉันรวมภาพรวมที่แตกต่างกันสองแบบของสถาปัตยกรรม MVC เพราะคล้ายกัน แต่ไม่เหมือนกัน มีห้องสำหรับตีความทั้งสองอย่าง อาจเป็นไปได้มากขึ้น คำอธิบายข้างต้นคือการตีความของฉันของ MVC จากหลาย ๆ แหล่งรวมถึงประสบการณ์การสร้างแอปพลิเคชันของฉันเองโดยใช้วิธีการนี้ หวังว่าการอัปเดตนี้จะช่วยขจัดความสับสนนี้
MVC เป็นความพยายามในการสร้างรูปแบบการแยกความกังวลสำหรับการพัฒนาซอฟต์แวร์ มันถูกนำไปใช้เป็นหลักในแอปพลิเคชันที่ทำงานบนเว็บ
ดูจัดการทั้งหมดของการปฏิสัมพันธ์ของผู้ใช้ หากผู้ใช้ของคุณคลิกที่ปุ่มมุมมองจะกำหนดว่าการคลิกนั้นเป็นการโต้ตอบกับส่วนต่อประสานกับผู้ใช้หรือบางสิ่งที่เกินความกังวล (การโต้ตอบของผู้ควบคุม) หากปุ่มทำบางอย่างเช่นคัดลอกค่าจากเขตข้อมูลหนึ่งไปยังอีกเขตข้อมูลการใช้งานของคุณจะกำหนดว่าเป็นข้อกังวลเกี่ยวกับมุมมองหรือข้อกังวลของตัวควบคุม คุณมักจะมีข้อกังวลที่เบลอเมื่อจัดการกับแอปพลิเคชันหน้าเดียว (SPA)
ควบคุมคือที่การกระทำของคุณมีการประมวลผล มุมมองได้สื่อสารกับผู้ใช้ตัดสินใจที่จะเปลี่ยนค่าสำหรับบางฟิลด์ คอนโทรลเลอร์อาจทำการตรวจสอบความถูกต้องของข้อมูลนั้นหรืออาจถูกจัดการโดยรุ่น อีกครั้งนี้ขึ้นอยู่กับการใช้งาน หากคอนโทรลเลอร์มีคุณสมบัติความปลอดภัยผู้ใช้อาจระบุว่าผู้ใช้ไม่มีสิทธิ์เพียงพอที่จะดำเนินการ มันจะปฏิเสธการเปลี่ยนแปลงและปรับปรุงดูตาม ตัวควบคุมยังกำหนดว่าจะดึงข้อมูลใดจากตัวแบบวิธีจัดทำชุดข้อมูลและอัปเดตมุมมองด้วยข้อมูลนั้น
รุ่นกำหนดวิธีการและสถานที่ในการจัดเก็บข้อมูล นอกจากนี้ยังอาจทำการตรวจสอบความถูกต้องของข้อมูลนั้นก่อนที่จะจัดเก็บ (ควรทำเช่นนี้เพราะผู้คนจะข้ามมุมมองในบางโอกาส)
วิกิพีเดียมีบทความเกี่ยวกับ MVC
- รุ่นแจ้งให้มุมมองที่เกี่ยวข้อง / มุมมองและควบคุมเมื่อมีการเปลี่ยนแปลงในสถานะของตน การแจ้งเตือนนี้อนุญาตให้มุมมองอัปเดตงานนำเสนอและตัวควบคุมเพื่อเปลี่ยนชุดคำสั่งที่มีให้ ในบางกรณีการใช้งาน MVC อาจเป็น "แฝง" เพื่อให้ส่วนประกอบอื่น ๆ ต้องสำรวจแบบจำลองสำหรับการอัปเดตแทนที่จะได้รับแจ้ง
- มุมมองจะบอกโดยการควบคุมข้อมูลทั้งหมดที่จำเป็นสำหรับการสร้างตัวแทนการส่งออกให้กับผู้ใช้ นอกจากนี้ยังสามารถให้กลไกทั่วไปในการแจ้งการควบคุมการป้อนข้อมูลของผู้ใช้
- ควบคุมสามารถส่งคำสั่งไปยังรูปแบบที่จะปรับปรุงสถานะของแบบจำลอง (เช่นการแก้ไขเอกสาร) นอกจากนี้ยังสามารถส่งคำสั่งไปยังมุมมองที่เกี่ยวข้องเพื่อเปลี่ยนการนำเสนอมุมมองของโมเดล (เช่นโดยการเลื่อนดูเอกสาร)
จากภาพรวมของ Microsoft MVC
รุ่น วัตถุต้นแบบเป็นส่วนหนึ่งของแอปพลิเคชันที่ใช้ตรรกะสำหรับโดเมนข้อมูลของแอปพลิเคชัน บ่อยครั้งที่วัตถุจำลองเรียกและจัดเก็บสถานะของโมเดลในฐานข้อมูล ตัวอย่างเช่นวัตถุผลิตภัณฑ์อาจดึงข้อมูลจากฐานข้อมูลดำเนินการกับมันแล้วเขียนข้อมูลที่อัพเดตกลับไปที่ตารางผลิตภัณฑ์ในฐานข้อมูล SQL Server
ในแอปพลิเคชั่นขนาดเล็กโมเดลมักจะแยกความคิดแทนที่จะเป็นแบบฟิสิคัล ตัวอย่างเช่นหากแอปพลิเคชันอ่านชุดข้อมูลเท่านั้นและส่งไปยังมุมมองแอปพลิเคชันจะไม่มีเลเยอร์แบบจำลองทางกายภาพและคลาสที่เกี่ยวข้อง ในกรณีนั้นชุดข้อมูลจะใช้กับบทบาทของโมเดลวัตถุ
เข้าชม มุมมองเป็นส่วนประกอบที่แสดงส่วนติดต่อผู้ใช้ของแอปพลิเคชัน (UI) โดยทั่วไปแล้ว UI นี้สร้างขึ้นจากข้อมูลรุ่น ตัวอย่างจะเป็นมุมมองแก้ไขของตารางผลิตภัณฑ์ที่แสดงกล่องข้อความรายการแบบหล่นลงและกล่องกาเครื่องหมายตามสถานะปัจจุบันของวัตถุผลิตภัณฑ์
ตัวควบคุม ตัวควบคุมคือส่วนประกอบที่จัดการการโต้ตอบกับผู้ใช้ทำงานกับโมเดลและเลือกมุมมองเพื่อแสดงผลที่แสดง UI ในแอปพลิเคชัน MVC มุมมองจะแสดงเฉพาะข้อมูล คอนโทรลเลอร์จะจัดการและตอบสนองต่ออินพุตและการโต้ตอบของผู้ใช้ ตัวอย่างเช่นตัวควบคุมจัดการค่าสตริงข้อความค้นหาและส่งค่าเหล่านี้ไปยังโมเดลซึ่งอาจใช้ค่าเหล่านี้เพื่อค้นหาฐานข้อมูล