MVC คืออะไร

MVC หรือ Model View Controller เป็นหนึ่งในหลายๆ pattern ของ Design pattern ซึ่งเป็น Model หรือรูปแบบในการวางโครงสร้างโปรแกรมทำให้แยกกันระหว่าง Model, View, Coltroller

  • Model เป็นส่วนควบคุมการเข้าถึงและใช้งานข้อมูล(Data)
  • View เป็นส่วนแสดงผลให้กับผู้ใช้งาน (User Interface)
  • Controller เป็นตัวกลางควบคุมการทำงานของระบบโดยเป็นตัวสั่งให้ Model และ View ทำงานตามความต้องการ
จากรูป จะแบ่งเป็นขั้นๆดังนี้

  • เริ่มต้นเมื่อ Client เรียก หรือร้องขอ(Request) เข้ามาจะไปที่ Controller ก่อนเพื่อให้ Controller ดูว่าต้องทำอะไรต่อไป
  • หากมีความต้องการใช้ข้อมูล(Data) Controller จะส่งต่อให้ Model ไปหาข้อมูลมาให้
  • แล้วเมื่อ Controller ได้รับข้อมูลที่เตรียมไว้เพื่อแสดงผล(หรือเพื่ออย่างอื่น) แล้ว Controller จะส่งข้อมูลไปให้ View
  • View ทำการแสดงผลให้กับ Client

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