บทช่วยสอนกรอบ MVC สำหรับผู้เริ่มต้น: คืออะไร Archiการสอนและตัวอย่าง

กรอบ MVC คืออะไร?

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

ประวัติความเป็นมาของเอ็มวีซี

  • สถาปัตยกรรม MVC ได้รับการหารือครั้งแรกในปี 1979 โดย Trygve Reenskaug
  • โมเดล MVC เปิดตัวครั้งแรกในปี 1987 ในภาษาโปรแกรม Smalltalk
  • MVC ได้รับการยอมรับว่าเป็นแนวคิดทั่วไปเป็นครั้งแรกในบทความปี 1988
  • ในช่วงล่าสุด รูปแบบ MVC ถูกนำมาใช้กันอย่างแพร่หลายในเว็บแอปพลิเคชันสมัยใหม่

คุณสมบัติของ MVC

  • ทดสอบได้ง่ายและไม่เสียดสี เฟรมเวิร์กที่ทดสอบได้สูง ขยายได้ และเสียบปลั๊กได้
  • การออกแบบสถาปัตยกรรมแอปพลิเคชันเว็บโดยใช้รูปแบบ MVC ช่วยให้คุณควบคุม HTML และ URL ได้อย่างเต็มที่
  • ใช้ประโยชน์จากคุณสมบัติที่มีอยู่ของ ASP.NET, JSP, Django ฯลฯ
  • การแยกตรรกะอย่างชัดเจน: โมเดล มุมมอง ตัวควบคุม การแยกงานแอปพลิเคชัน เช่น ตรรกะทางธุรกิจ ตรรกะ Ul และตรรกะอินพุต
  • การกำหนดเส้นทาง URL สำหรับ URL ที่เป็นมิตรกับ SEO การทำแผนที่ URL ที่มีประสิทธิภาพสำหรับ URL ที่เข้าใจและค้นหาได้
  • รองรับการพัฒนาการทดสอบขับเคลื่อน (TDD)

VMC Archiเทคเจอร์

นี่คือสถาปัตยกรรมโดยละเอียดของกรอบงาน MVC:

VMC Archiเทคเจอร์
VMC Archiแผนภาพเทคเจอร์

องค์ประกอบ MVC ที่สำคัญสามประการคือ:

  • โมเดล: ประกอบด้วยข้อมูลทั้งหมดและตรรกะที่เกี่ยวข้อง
  • ดู: นำเสนอข้อมูลให้กับผู้ใช้หรือจัดการการโต้ตอบของผู้ใช้
  • ตัวควบคุม: อินเทอร์เฟซระหว่างส่วนประกอบ Model และ View

เรามาดูรายละเอียดส่วนประกอบนี้กัน:

รายละเอียด

มุมมองคือส่วนหนึ่งของแอปพลิเคชันที่แสดงข้อมูล

มุมมองถูกสร้างขึ้นโดยข้อมูลที่รวบรวมจากข้อมูลแบบจำลอง มุมมองร้องขอให้แบบจำลองให้ข้อมูลเพื่อนำเสนอผลลัพธ์แก่ผู้ใช้

มุมมองยังแสดงข้อมูลจากแผนภูมิ ไดอะแกรม และตาราง ตัวอย่างเช่น มุมมองลูกค้าจะรวมส่วนประกอบ UI ทั้งหมด เช่น กล่องข้อความ เมนูแบบดรอปดาวน์ เป็นต้น

ตัวควบคุม

คอนโทรลเลอร์เป็นส่วนหนึ่งของแอปพลิเคชันที่จัดการการโต้ตอบของผู้ใช้ คอนโทรลเลอร์จะตีความอินพุตเมาส์และคีย์บอร์ดจากผู้ใช้ โดยแจ้งรุ่นและมุมมองให้เปลี่ยนแปลงตามความเหมาะสม

คอนโทรลเลอร์ส่งคำสั่งไปยังโมเดลเพื่ออัปเดตสถานะ (เช่น การบันทึกเอกสารเฉพาะ) ตัวควบคุมยังส่งคำสั่งไปยังมุมมองที่เกี่ยวข้องเพื่อเปลี่ยนการนำเสนอของมุมมอง (เช่น การเลื่อนเอกสารใดเอกสารหนึ่ง)

รุ่น

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

ตอบสนองต่อคำขอจากมุมมองและยังตอบสนองต่อคำแนะนำจากคอนโทรลเลอร์เพื่ออัปเดตตัวเองด้วย นอกจากนี้ยังเป็นระดับต่ำสุดของรูปแบบที่รับผิดชอบในการดูแลรักษาข้อมูล

ตัวอย่าง MVC

มาดูตัวอย่าง Model View Controller จากชีวิตประจำวันกัน:

1 ตัวอย่าง

ตัวอย่าง MVC

  • สมมติว่าคุณไปร้านอาหาร คุณจะไม่เข้าครัวและเตรียมอาหารที่คุณสามารถทำได้ที่บ้านอย่างแน่นอน แต่คุณไปที่นั่นและรอให้บริกรมาแทน
  • ตอนนี้บริกรมาหาคุณแล้วคุณก็สั่งอาหาร พนักงานเสิร์ฟไม่รู้ว่าคุณเป็นใครและต้องการอะไร เขาแค่เขียนรายละเอียดการสั่งอาหารของคุณ
  • จากนั้นบริกรก็ย้ายไปที่ห้องครัว ในห้องครัว พนักงานเสิร์ฟไม่ได้เตรียมอาหารของคุณ
  • พ่อครัวเตรียมอาหารให้คุณ พนักงานเสิร์ฟจะได้รับออร์เดอร์ของคุณพร้อมหมายเลขโต๊ะของคุณ
  • ปรุงอาหารแล้วเตรียมอาหารให้กับคุณ เขาใช้วัตถุดิบในการปรุงอาหาร สมมติว่าคุณสั่งแซนด์วิชผัก จากนั้นเขาก็ต้องการขนมปัง มะเขือเทศ มันฝรั่ง พริก หัวหอม ชีสขูดฝอย ฯลฯ ซึ่งเขาหามาจากตู้เย็น
  • ปรุงอาหารขั้นสุดท้ายให้กับบริกร ตอนนี้เป็นหน้าที่ของพนักงานเสิร์ฟที่จะย้ายอาหารนี้ออกไปนอกครัว
  • ตอนนี้บริกรรู้ว่าคุณสั่งอาหารประเภทไหนและจะเสิร์ฟอย่างไร

ในตัวอย่างสถาปัตยกรรม MVC นี้

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

มาดูตัวอย่างโมเดล MVC อีกหนึ่งตัวอย่าง

2 ตัวอย่าง

ตัวอย่าง MVC

กลไกการขับเคลื่อนของรถยนต์เป็นอีกตัวอย่างหนึ่งของรุ่น MVC

  • รถทุกคันประกอบด้วยสามส่วนหลัก
  • View= หน้าจอผู้ใช้ : (คันเกียร์ แผงหน้าปัด พวงมาลัย เบรก ฯลฯ)
  • ตัวควบคุม- กลไก (เครื่องยนต์)
  • รุ่น-ห้องเก็บของ (ถังน้ำมันเบนซินหรือดีเซล)

รถวิ่งโดยใช้เครื่องยนต์ใช้เชื้อเพลิงจากการจัดเก็บ แต่จะวิ่งโดยใช้อุปกรณ์อินเทอร์เฟซผู้ใช้ดังกล่าวเท่านั้น

กรอบงานเว็บ MVC ยอดนิยม

นี่คือรายการเฟรมเวิร์ก MVC ยอดนิยมบางส่วน:

ข้อดีของ MVC: ประโยชน์หลัก

ประโยชน์หลักของการใช้สถาปัตยกรรม MVC มีดังนี้:

  • การบำรุงรักษาโค้ดง่าย ๆ ซึ่งง่ายต่อการขยายและขยาย
  • ส่วนประกอบโมเดล MVC สามารถทดสอบแยกจากผู้ใช้ได้
  • การสนับสนุนที่ง่ายขึ้นสำหรับลูกค้าประเภทใหม่
  • การพัฒนาส่วนประกอบต่างๆสามารถดำเนินการควบคู่กันได้
  • ช่วยให้คุณหลีกเลี่ยงความซับซ้อนโดยแบ่งแอปพลิเคชันออกเป็นสามหน่วย ได้แก่ โมเดล มุมมอง และตัวควบคุม
  • ใช้เฉพาะรูปแบบ Front Controller ซึ่งประมวลผลคำขอเว็บแอปพลิเคชันผ่านคอนโทรลเลอร์ตัวเดียว
  • เสนอการสนับสนุนที่ดีที่สุดสำหรับ การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
  • มันทำงานได้ดีกับเว็บแอปที่ได้รับการสนับสนุนจากทีมนักออกแบบและนักพัฒนาเว็บไซต์ขนาดใหญ่
  • ให้การแยกข้อกังวล (SoC) อย่างชัดเจน
  • เป็นมิตรกับการปรับแต่งเว็บไซต์ให้ติดอันดับบนเครื่องมือการค้นหา (SEO)
  • คลาสและออบเจ็กต์ทั้งหมดมีความเป็นอิสระจากกัน ดังนั้นคุณจึงสามารถทดสอบแยกกันได้
  • รูปแบบการออกแบบ MVC ช่วยให้สามารถจัดกลุ่มการกระทำที่เกี่ยวข้องบนคอนโทรลเลอร์เข้าด้วยกันได้

ข้อเสียของการใช้ MVC

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

3 ชั้น Archiเทคเจอร์กับ MVC Archiเทคเจอร์

พารามิเตอร์ 3 ชั้น Archiเทคเจอร์ VMC Archiเทคเจอร์
การสื่อสาร รูปแบบสถาปัตยกรรมประเภทนี้จะไม่สื่อสารโดยตรงกับชั้นข้อมูล ทุกเลเยอร์สื่อสารโดยตรงโดยใช้โทโพโลยีสามเหลี่ยม
การใช้ 3 ระดับ: ใช้กันอย่างแพร่หลายในเว็บแอปพลิเคชันที่ไคลเอนต์ ระดับข้อมูล และมิดเดิลแวร์ทำงานบนแพลตฟอร์มที่แยกจากกัน โดยทั่วไปจะใช้กับแอปพลิเคชันที่ทำงานบนเวิร์กสเตชันกราฟิกเครื่องเดียว

สรุป

  • MVC เป็นรูปแบบสถาปัตยกรรมที่แยกแอปพลิเคชันออกเป็น 1) โมเดล 2) มุมมอง และ 3) ตัวควบคุม
  • โมเดล: ประกอบด้วยข้อมูลทั้งหมดและตรรกะที่เกี่ยวข้อง
  • ดู: นำเสนอข้อมูลให้กับผู้ใช้หรือจัดการการโต้ตอบของผู้ใช้
  • ตัวควบคุม: อินเทอร์เฟซระหว่างส่วนประกอบ Model และ View
  • สถาปัตยกรรม MVC ได้รับการหารือครั้งแรกในปี 1979 โดย Trygve Reenskaug
  • สถาปัตยกรรม MVC ใน Java เป็นเฟรมเวิร์กที่สามารถทดสอบได้สูง ขยายได้ และเสียบปลั๊กได้
  • เฟรมเวิร์ก MVC ยอดนิยมบางตัว ได้แก่ Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP เป็นต้น