ผู้เขียน หัวข้อ: MVC(Model-View-Controller) คืออะไร  (อ่าน 8762 ครั้ง)

program4

  • แมน
  • ผู้ดูแลห้องกิตติมศักดิ์
  • Full Member
  • *****
  • กระทู้: 157
    • ดูรายละเอียด
MVC(Model-View-Controller) คืออะไร
« เมื่อ: 29 กรกฎาคม 2008, 14:08:17 »
     MVC เป็นหนึ่งในหลายๆ pattern ของ Design pattern ซึ่งเป็น Model
หรือรูปแบบในการวางโครงสร้างโปรแกรมทำให้แยกกันระหว่าง M=Model V=View C=Coltroller

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

 


     


     รูป. พื้นฐานการทำงานของ MVC

     จากรูป จะเห็นได้ว่า เวลาที่ Client เรียก หรือร้องขอ(Request) เข้ามาจะไปที่ Control ก่อนเพื่อแยกแยะว่าจะต้องทำอะไร แล้วค่อยไปหา Model แล้วสร้าง View ส่งกลับไปให้ Client จะเห็นได้ว่า การทำงานของโปรแกรมจะแบ่งแยกหน้าที่กันอย่างชัดเจนทำให้เราสามารถปรับเปรี่ยนแก้ไข หรือ พัฒนาเพิ่มเติมได้โดยที่ไม่มีผลกระทบต่อการทำงานในส่วนอื่นๆ ซึ่งผมจะยกตัวอย่างการทำงานของ Hardware เพื่อให้เห็นภาพการทำงานมากขึ้น เช่น  คอมพิวเตอร์ 1 เครื่องนั้น ถ้าต้องการให้คอมพิวเตอร์นั้นประมวลผลเร็วขึ้นก็สามารถที่จะถอด CPU ตัวเก่า แล้วนำ CPU ตัวใหม่มาเสียบ แล้วใช้ต่อได้เร็วกว่าเดิม ต้องการให้การแสดงผลที่ดีขึ้นก็เปลี่ยนการ์ดจอ แต่ขอบเขตคือต้องอยู่ในสิ่งที่ mainboard รับได้ด้วย เราจะทำยังไง ซึ่งเป้นอะไรที่ยากมากเพราะจะต้องใช้สถาปัตยกรรมหรือแนวคิดของ Software ที่ดีด้วยซึ่ง MVC ก็ทำได้ เช่น ถ้าเราต้องการ Control ใหม่ให้ได้ผลลัพท์เหมือนเดิม แล้วเอาไปเสียบที่เดิม ก็เสร็จ ทำให้ไม่ต้องมาสนใจ View และ Model เป็นต้น
« แก้ไขครั้งสุดท้าย: 17 กันยายน 2008, 20:35:51 โดย enjoyman »
ความทุกข์เกิดจากความอยาก เพราะฉะนั้นถ้าไม่อยากก็จะไม่ทุกข์ (สาธุ)...

Dreamza

  • Newbie
  • *
  • กระทู้: 1
    • MSN Messenger - hotpod555@yahoo.co.th
    • ดูรายละเอียด
    • Control valve
Re: MVC(Model-View-Controller) คืออะไร
« ตอบกลับ #1 เมื่อ: 10 กรกฎาคม 2010, 13:24:10 »
แล้วตัวไหน ที่เกี่ยวกับ Controller บ้างอะครับ

program4

  • แมน
  • ผู้ดูแลห้องกิตติมศักดิ์
  • Full Member
  • *****
  • กระทู้: 157
    • ดูรายละเอียด
Re: MVC(Model-View-Controller) คืออะไร
« ตอบกลับ #2 เมื่อ: 12 กรกฎาคม 2010, 10:15:30 »
อ้างถึง
แล้วตัวไหน ที่เกี่ยวกับ Controller บ้างอะครับ

หมายถึงการทำงาน อะไรที่ถือว่าเป็น controller บ้างหรือครับ
เช่น การประมวลผลต่างๆ เช่น
การลงทะเบียน
      - ฟอร์มสำหรับการกรอกข้อมูล ---> เปลียบเทียบ เหมือน view
      - เมือกดปุ่มลงทะเบียน แล้วข้อมูลที่กรอก จะส่งให้มาประมวนผลที่ controller ซึ่ง controller จะเป็นคนเรียกใช้ model หรือฐานข้อมูลที่เกี่ยวข้องในการเก็บข้อมูล และ ส่งให้ view แสดงผลสถานะการลงทะเบียนต่อไป

ไม่รู้ว่าตอบตรง ที่ Dreamza ถามหรือเปล่านะครับ
ความทุกข์เกิดจากความอยาก เพราะฉะนั้นถ้าไม่อยากก็จะไม่ทุกข์ (สาธุ)...