MVC คือสถาปัตยกรรมซอฟท์แวร์อย่างหนึ่ง ที่มีการทำงานเป็น pattern เพื่อให้การสร้าง application เป็นไปอย่างมีระเบียบมากขึ้น
ตัวอย่างและคำอธิบายต่อไปนี้จะเน้นไปที่ MVC ที่เกี่ยวข้องกับเว็บโดยตรง นักพัฒนา app. บน platform อื่นๆจะได้ไม่งงนะครับ
C - controller เป็นส่วนที่ทำควบคุมโดยอาจจะรับค่าจาก path, querystring เข้ามาทำงานกับ controller->method ของมันโดยเฉพาะ
ตัวอย่าง controller ใน codeigniter เช่นเรียก url ดังนี้ http://localhost/index.php/controller1/method1 จะเป็นการ route ไปทำงานที่ไฟล์ controller1 และ method1
ซึ่งการทำงานแบบนี้ดีมาก คือแยก url/path ชัดๆไปเลยตรวจหาเอาใน controller ก็ง่าย ไล่ง่ายมากแก้ก็ง่าย
M - model เป็นส่วนที่ทำงานเบื้องหลังสนับสนุน controller อีกที โดยอาจจะมีหรือไม่ก็ได้
ตัวอย่างเช่น http://localhost/index.php/controller1/method1 ถ้าใน controller1->method1 มีการทำงานเกี่ยวกับการประมวลผลมากๆเช่น แสดงข้อมูล,จัดการข้อมูลกับฐานข้อมูล, ประมวลผลการทำงานต่างๆ ถ้าเขียนยัดลงใน method1 นั้นจะมากเกินไป และดูรก ดังนั้น model จึงมาช่วยทำงานตรงนี้ได้
โดยอาจสร้างเป็น model สำหรับ controller นั้นๆก็ได้. ซึ่ง model เป็นเพียงการทำงานเบื้องหลังเท่านั้น และเขียนได้อิสระมาก
เมื่อมี model ช่วยประมวลผลแล้ว การเขียนโค้ดใน controller ก็น้อยลง แค่สั่งงานไปที่ ->model->method(); เท่านั้น
V - view เป็นส่วนที่ทำหน้าที่เกี่ยวกับการแสดงผล เหมือนกับเป็น template ดีๆนั่นเอง
มันจะคอยรับค่ามาจาก controller, modelผ่านcontrollerอีกที เพื่อนำค่านั้นมาแสดงผลใน view