VMC Archiโครงสร้างและกรอบงานพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
สถาปัตยกรรม Model-View-Controller (MVC) เป็นรูปแบบสถาปัตยกรรมที่แบ่งแอปพลิเคชันออกเป็นสามส่วน ได้แก่ Model, View และ Controller โดยแยกตรรกะทางธุรกิจออกจากส่วนการนำเสนอ เพื่อสร้างแอปพลิเคชันบนเว็บและเดสก์ท็อปที่บำรุงรักษาและทดสอบได้ง่าย โดยใช้เฟรมเวิร์กต่างๆ เช่น Spring, Django และ Laravel

กรอบ MVC คืออะไร?
การขอ รุ่น-มุมมอง-คอนโทรลเลอร์ (MVC) กรอบงานเป็นรูปแบบสถาปัตยกรรมที่แบ่งแอปพลิเคชันออกเป็นสามส่วนหลักเชิงตรรกะ ได้แก่ โมเดล มุมมอง และตัวควบคุม ดังนั้นจึงใช้ตัวย่อ MVC ส่วนประกอบสถาปัตยกรรมแต่ละส่วนถูกสร้างขึ้นเพื่อจัดการด้านการพัฒนาเฉพาะของแอปพลิเคชัน MVC แยกชั้นตรรกะทางธุรกิจและการนำเสนอออกจากกัน โดยทั่วไปแล้ว MVC ใช้สำหรับอินเทอร์เฟซผู้ใช้แบบกราฟิกบนเดสก์ท็อป (GUI) ปัจจุบัน สถาปัตยกรรม MVC ในเทคโนโลยีเว็บได้รับความนิยมในการออกแบบแอปพลิเคชันเว็บและแอปพลิเคชันมือถือ
ประวัติความเป็นมาของเอ็มวีซี
- สถาปัตยกรรม MVC ได้รับการหารือครั้งแรกในปี 1979 โดย Trygve Reenskaug
- โมเดล MVC เปิดตัวครั้งแรกในปี 1987 ในภาษาโปรแกรม Smalltalk
- MVC ได้รับการยอมรับว่าเป็นแนวคิดทั่วไปเป็นครั้งแรกในบทความปี 1988
- ในปัจจุบัน รูปแบบ MVC ถูกนำมาใช้กันอย่างแพร่หลายในแอปพลิเคชันเว็บสมัยใหม่
คุณสมบัติของ MVC
- ทดสอบได้ง่ายและไม่เสียดสี เฟรมเวิร์กที่ทดสอบได้สูง ขยายได้ และเสียบปลั๊กได้
- การออกแบบสถาปัตยกรรมเว็บแอปพลิเคชันโดยใช้รูปแบบ MVC ช่วยให้คุณควบคุม HTML และส่วนอื่นๆ ได้อย่างเต็มที่ URLs
- ใช้ประโยชน์จากคุณสมบัติที่มีอยู่ของ ASP.NET, JSP, Django ฯลฯ
- การแยกตรรกะอย่างชัดเจน: โมเดล มุมมอง ตัวควบคุม การแยกงานแอปพลิเคชัน เช่น ตรรกะทางธุรกิจ ตรรกะ Ul และตรรกะอินพุต
- URL การกำหนดเส้นทางที่เป็นมิตรต่อ SEO URLส. ทรงพลัง URL-แผนที่ping เพื่อให้เข้าใจง่ายและค้นหาได้สะดวก URLs
- รองรับการพัฒนาการทดสอบขับเคลื่อน (TDD)
VMC Archiเทคเจอร์
เมื่อทราบถึงประโยชน์แล้ว ต่อไปนี้คือสถาปัตยกรรมโดยละเอียดของเฟรมเวิร์ก MVC:

องค์ประกอบ MVC ที่สำคัญสามประการคือ:
- โมเดล: ประกอบด้วยข้อมูลทั้งหมดและตรรกะที่เกี่ยวข้อง
- ดู: นำเสนอข้อมูลให้กับผู้ใช้หรือจัดการการโต้ตอบของผู้ใช้
- ตัวควบคุม: อินเทอร์เฟซระหว่างส่วนประกอบ Model และ View
เรามาดูส่วนประกอบแต่ละอย่างโดยละเอียดกัน:
รายละเอียด
มุมมองคือส่วนหนึ่งของแอปพลิเคชันที่แสดงข้อมูล
มุมมองถูกสร้างขึ้นจากข้อมูลที่รวบรวมได้จากข้อมูลของแบบจำลอง มุมมองจะร้องขอข้อมูลจากแบบจำลองเพื่อให้สามารถนำเสนอผลลัพธ์แก่ผู้ใช้ได้
มุมมองยังแสดงข้อมูลจากแผนภูมิ ไดอะแกรม และตาราง ตัวอย่างเช่น มุมมองลูกค้าจะรวมส่วนประกอบ UI ทั้งหมด เช่น กล่องข้อความ เมนูแบบดรอปดาวน์ เป็นต้น
ตัวควบคุม
คอนโทรลเลอร์คือส่วนหนึ่งของแอปพลิเคชันที่จัดการการโต้ตอบกับผู้ใช้ คอนโทรลเลอร์จะตีความข้อมูลที่ป้อนจากเมาส์และแป้นพิมพ์ของผู้ใช้ แล้วแจ้งให้โมเดลและวิวเปลี่ยนแปลงไปตามความเหมาะสม
คอนโทรลเลอร์จะส่งคำสั่งไปยังโมเดลเพื่ออัปเดตสถานะของโมเดล (เช่น การบันทึกเอกสารเฉพาะ) นอกจากนี้ คอนโทรลเลอร์ยังส่งคำสั่งไปยังวิวที่เกี่ยวข้องเพื่อเปลี่ยนแปลงการแสดงผลของวิว (ตัวอย่างเช่น การเลื่อนเอกสารเฉพาะ)
รุ่น
ส่วนประกอบแบบจำลองจัดเก็บข้อมูลและตรรกะที่เกี่ยวข้อง แสดงถึงข้อมูลที่กำลังถ่ายโอนระหว่างส่วนประกอบของตัวควบคุมหรือตรรกะทางธุรกิจอื่น ๆ ที่เกี่ยวข้อง ตัวอย่างเช่น วัตถุตัวควบคุมจะดึงข้อมูลลูกค้าจากฐานข้อมูล มันจัดการข้อมูลและส่งกลับไปยังฐานข้อมูลหรือใช้เพื่อแสดงข้อมูลเดียวกัน
มันตอบสนองต่อคำขอจากส่วนแสดงผล (views) และยังตอบสนองต่อคำสั่งจากส่วนควบคุม (controller) เพื่ออัปเดตตัวเอง นอกจากนี้ยังเป็นระดับต่ำสุดของรูปแบบที่รับผิดชอบในการดูแลรักษาข้อมูล
ตัวอย่าง MVC
มาดูตัวอย่าง Model View Controller จากชีวิตประจำวันกัน:
1 ตัวอย่าง
- สมมติว่าคุณไปร้านอาหาร คุณจะไม่เข้าครัวและเตรียมอาหารที่คุณสามารถทำได้ที่บ้านอย่างแน่นอน แต่คุณไปที่นั่นและรอให้บริกรมาแทน
- ตอนนี้บริกรมาหาคุณแล้วคุณก็สั่งอาหาร พนักงานเสิร์ฟไม่รู้ว่าคุณเป็นใครและต้องการอะไร เขาแค่เขียนรายละเอียดการสั่งอาหารของคุณ
- จากนั้นบริกรก็ย้ายไปที่ห้องครัว ในห้องครัว พนักงานเสิร์ฟไม่ได้เตรียมอาหารของคุณ
- พ่อครัวเตรียมอาหารให้คุณ พนักงานเสิร์ฟจะได้รับออร์เดอร์ของคุณพร้อมหมายเลขโต๊ะของคุณ
- ปรุงอาหารแล้วเตรียมอาหารให้กับคุณ เขาใช้วัตถุดิบในการปรุงอาหาร สมมติว่าคุณสั่งแซนด์วิชผัก จากนั้นเขาก็ต้องการขนมปัง มะเขือเทศ มันฝรั่ง พริก หัวหอม ชีสขูดฝอย ฯลฯ ซึ่งเขาหามาจากตู้เย็น
- ปรุงอาหารขั้นสุดท้ายให้กับบริกร ตอนนี้เป็นหน้าที่ของพนักงานเสิร์ฟที่จะย้ายอาหารนี้ออกไปนอกครัว
- ตอนนี้บริกรรู้ว่าคุณสั่งอาหารประเภทไหนและจะเสิร์ฟอย่างไร
ในตัวอย่างสถาปัตยกรรม MVC นี้
View= You Waiter= Controller Cook= Model Refrigerator= Data
มาดูตัวอย่างโมเดล MVC อีกหนึ่งตัวอย่าง
2 ตัวอย่าง
กลไกการขับเคลื่อนของรถยนต์เป็นอีกตัวอย่างหนึ่งของรุ่น MVC
- รถทุกคันประกอบด้วยสามส่วนหลัก
- การแสดงผล: ส่วนติดต่อผู้ใช้ : (คันเกียร์ แผงควบคุม พวงมาลัย เบรก ฯลฯ)
- ตัวควบคุม- กลไก (เครื่องยนต์)
- รุ่น-ห้องเก็บของ (ถังน้ำมันเบนซินหรือดีเซล)
รถวิ่งโดยใช้เครื่องยนต์ใช้เชื้อเพลิงจากการจัดเก็บ แต่จะวิ่งโดยใช้อุปกรณ์อินเทอร์เฟซผู้ใช้ดังกล่าวเท่านั้น
กรอบงานเว็บ MVC ยอดนิยม
นี่คือรายการเฟรมเวิร์ก MVC ยอดนิยมบางส่วน:
- ทับทิมบนราง
- Django
- CakePHP
- Yii
- เชอรี่ปี้
- ฤดูใบไม้ผลิ MVC
- ตัวเร่ง
- ทางรถไฟ
- Zend Framework
- Codeเครื่องทำให้ลุกไหม้
- Laravel
- เชื้อเพลิง PHP
- Symphony
ข้อดีของ MVC: ประโยชน์หลัก
ประโยชน์หลักของการใช้สถาปัตยกรรม MVC มีดังนี้:
- การบำรุงรักษาโค้ดง่าย ๆ ซึ่งง่ายต่อการขยายและขยาย
- ส่วนประกอบโมเดล MVC สามารถทดสอบแยกจากผู้ใช้ได้
- การสนับสนุนที่ง่ายขึ้นสำหรับลูกค้าประเภทใหม่
- การพัฒนาส่วนประกอบต่างๆสามารถดำเนินการควบคู่กันได้
- ช่วยให้คุณหลีกเลี่ยงความซับซ้อนโดยแบ่งแอปพลิเคชันออกเป็นสามหน่วย ได้แก่ โมเดล มุมมอง และตัวควบคุม
- ใช้เฉพาะรูปแบบ Front Controller ซึ่งประมวลผลคำขอเว็บแอปพลิเคชันผ่านคอนโทรลเลอร์ตัวเดียว
- เสนอการสนับสนุนที่ดีที่สุดสำหรับ การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
- มันทำงานได้ดีกับเว็บแอปที่ได้รับการสนับสนุนจากทีมนักออกแบบและนักพัฒนาเว็บไซต์ขนาดใหญ่
- ช่วยให้เกิดการแยกส่วนงานที่ชัดเจน (SoC)
- เป็นมิตรกับการปรับแต่งเว็บไซต์ให้ติดอันดับบนเครื่องมือการค้นหา (SEO)
- คลาสและออบเจ็กต์ทั้งหมดมีความเป็นอิสระจากกัน ดังนั้นคุณจึงสามารถทดสอบแยกกันได้
- รูปแบบการออกแบบ MVC ช่วยให้การจัดกลุ่มเชิงตรรกะเป็นไปได้ping ของการกระทำที่เกี่ยวข้องบนตัวควบคุมพร้อมกัน
ข้อเสียของการใช้ MVC
- อ่าน เปลี่ยนแปลง ทดสอบหน่วย และนำโมเดลนี้ไปใช้ซ้ำได้ยาก
- การนำทางในเฟรมเวิร์กอาจซับซ้อนในบางครั้ง เนื่องจากมีการเพิ่มเลเยอร์ของ abs ใหม่ๆ เข้ามาtracซึ่งกำหนดให้ผู้ใช้ต้องปรับตัวให้เข้ากับเกณฑ์การแบ่งส่วนของ MVC
- ไม่มีการสนับสนุนการตรวจสอบอย่างเป็นทางการ
- ความซับซ้อนที่เพิ่มมากขึ้นและประสิทธิภาพของข้อมูลที่ไม่มีประสิทธิภาพ
- ความยากในการใช้ MVC กับส่วนต่อประสานผู้ใช้ที่ทันสมัย
- จำเป็นต้องมีโปรแกรมเมอร์หลายคนเพื่อทำการเขียนโปรแกรมแบบขนาน
- จำเป็นต้องมีความรู้เกี่ยวกับเทคโนโลยีหลายอย่าง
- การบำรุงรักษาโค้ดจำนวนมากในคอนโทรลเลอร์
3 ชั้น Archiเทคเจอร์กับ MVC Archiเทคเจอร์
| พารามิเตอร์ | 3 ชั้น Archiเทคเจอร์ | VMC Archiเทคเจอร์ |
|---|---|---|
| การสื่อสาร | รูปแบบสถาปัตยกรรมประเภทนี้จะไม่สื่อสารโดยตรงกับชั้นข้อมูล | ทุกเลเยอร์สื่อสารโดยตรงโดยใช้โทโพโลยีสามเหลี่ยม |
| การใช้ | 3 ระดับ: ใช้กันอย่างแพร่หลายในเว็บแอปพลิเคชันที่ไคลเอนต์ ระดับข้อมูล และมิดเดิลแวร์ทำงานบนแพลตฟอร์มที่แยกจากกัน | โดยทั่วไปจะใช้กับแอปพลิเคชันที่ทำงานบนเวิร์กสเตชันกราฟิกเครื่องเดียว |


