Skip to main content

Model-View-Controller คืออะไร?

Model-View-Controller (MVC) เป็นประเภทของสถาปัตยกรรมซอฟต์แวร์และรูปแบบการออกแบบที่แบ่งส่วนองค์ประกอบของโปรแกรมแต่ละรายการในพื้นที่ที่กำหนดไว้อย่างดีในสถาปัตยกรรมแบบจำลองมุมมองแบบจำลองโมเดลเกี่ยวข้องกับตรรกะของโปรแกรมภายในทั้งหมดที่จัดการบันทึกการดึงและจัดการและคำนวณข้อมูลมุมมองด้านนี้รับผิดชอบในการแสดงข้อมูลจากโมเดลสำหรับผู้ใช้และยังมีวิธีสำหรับผู้ใช้ในการให้ข้อมูลกับโปรแกรมคอนโทรลเลอร์ใช้อินพุตจากมุมมองประเมินหรือประมวลผลและโต้ตอบกับโมเดลเพื่อเปลี่ยนข้อมูลหรือสถานะโปรแกรมซึ่งท้ายที่สุดจะแสดงต่อผู้ใช้ผ่านมุมมองแม้ว่าการออกแบบตัวตรวจสอบแบบจำลองการเรียกใช้โปรแกรมเรียกใช้ฟังก์ชันการทำงาน แต่ทั้งสามส่วนยังคงต้องโต้ตอบกันในบางวิธีและโดยทั่วไปจะขึ้นอยู่กับกันในบางแง่มุมต่างจากรูปแบบการออกแบบที่ก้าวร้าวมากขึ้น

บ่อยครั้งที่รูปแบบการดูแบบจำลองมุมมองจะเห็นได้ในแอปพลิเคชันที่จัดการส่วนต่อประสานผู้ใช้กราฟิก (GUI)การใช้รูปแบบ MVC องค์ประกอบภาพที่แตกต่างกันของ GUI ได้รับการจัดการโดยมุมมองการบันทึกและการประมวลผลของที่และสิ่งที่ผู้ใช้คลิกถูกจัดการโดยคอนโทรลเลอร์และการเปลี่ยนข้อมูลหรือการโหลดข้อมูลจริงขึ้นอยู่กับการออกแบบที่แน่นอนของแอปพลิเคชันแต่ละองค์ประกอบของรูปแบบ MVC สามารถมีกลไกในการโต้ตอบกับส่วนประกอบอื่น ๆ เช่นโมเดลที่สามารถแนะนำมุมมองโดยตรงเพื่อรีเฟรชหน้าจอหรือมุมมองที่มีวิธีการบอกคอนโทรลเลอร์ที่รีเฟรชหน้าจอและไม่รับอินพุตใหม่ซึ่งแตกต่างจากรูปแบบการออกแบบบางอย่างที่ใช้วิธีการกล่องดำที่เข้มงวดโปรแกรมการดูแบบจำลองการดูมีแนวโน้มที่จะยืดหยุ่นมากขึ้นเล็กน้อยแม้ว่าการใช้งานบางอย่างสามารถทำให้โปรแกรม MVC ยากที่จะเปลี่ยนหรือดีบักเป็นโมดูล

ในบางกรณีรูปแบบ View-controller ไม่จำเป็นต้องมีเพียงหนึ่งในแต่ละองค์ประกอบตัวอย่างหนึ่งคือแอปพลิเคชันที่มีหลายมุมมองเช่นจอภาพหลายจอหรือจอแสดงผลที่สามารถมองเห็นได้ในอุปกรณ์ไคลเอนต์หลายตัวหลายมุมมองและคอนโทรลเลอร์สามารถใช้ในแอปพลิเคชันที่ช่วยให้ผู้ใช้จำนวนมากสามารถเข้าถึงฐานข้อมูลทั้งหมดตอบกลับไปยังรุ่นเดียวอย่างไรก็ตามเป็นเรื่องธรรมดามากขึ้นในการออกแบบระบบที่รักษาอัตราส่วนแบบหนึ่งต่อหนึ่งของส่วนประกอบมุมมองแบบจำลองการดูในการปรับเปลี่ยนบางส่วนของระบบที่ใช้รูปแบบ MVC มากกว่าหากไม่มีการใช้รูปแบบเลยโดยเฉพาะอย่างยิ่งในกรณีของแอปพลิเคชันที่ไม่ใช่วัตถุหากแอปพลิเคชันใช้การโทรกลับหรือผู้ฟังและผู้สังเกตการณ์เพื่อใช้การโต้ตอบระหว่างส่วนประกอบแต่ละองค์ประกอบสามารถเปลี่ยนแปลงได้โดยไม่ส่งผลกระทบต่ออีกสององค์ประกอบซึ่งหมายความว่า GUI ใหม่สามารถนำไปใช้ได้โดยไม่ส่งผลกระทบต่อโมเดลหรือคอนโทรลเลอร์อย่างไรก็ตามควรสังเกตว่าการเปลี่ยนแปลงขั้นพื้นฐานในระบบการดูแบบจำลองการดูอาจต้องใช้การเข้ารหัสใหม่เล็กน้อยสำหรับแต่ละองค์ประกอบ