แหล่งรวบรวมขั้นตอนการเขียนโปรแกรม ตัวอย่างโค้ด แนวทางเขียนโปรแกรม เทคนิคต่างๆมากมาย

Showing posts with label Design pattern. Show all posts
Showing posts with label Design pattern. Show all posts

December 24, 2010

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 เป็นต้น

..อ่านต่อ..