MVC, MVP, MVVM: อันไหนให้เลือก?

MVC, MVP, MVVM: อันไหนให้เลือก?

แอปพลิเคชั่นสมัยใหม่ต้องการคุณสมบัติที่หลากหลายซึ่งกระบวนการพัฒนานั้นมีขนาดและความซับซ้อนเพิ่มขึ้น คุณสามารถใช้รูปแบบการออกแบบสถาปัตยกรรมเพื่อช่วยในเรื่องนี้ได้ รองรับการสร้างแอปพลิเคชันที่ง่ายต่อการทดสอบและบำรุงรักษา





รูปแบบการออกแบบที่ได้รับความนิยมสูงสุดสามรูปแบบ ได้แก่ MVC, MVP และ MVVM MVC ย่อมาจาก model, view และ controller ในขณะที่ MVP หมายถึง model, view และ presenter และ MVVM สำหรับ model, view และ view model





รูปแบบสถาปัตยกรรมและการออกแบบ

รูปแบบสถาปัตยกรรม

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





รูปแบบการออกแบบ

รูปแบบการออกแบบคือแนวทางปฏิบัติที่ดีที่สุดที่เป็นทางการซึ่งคุณสามารถใช้เพื่อแก้ไขปัญหาทั่วไปเมื่อออกแบบแอปพลิเคชันหรือระบบ

ความแตกต่างระหว่างรูปแบบสถาปัตยกรรมและการออกแบบ

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



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

วิธีย้ายจาก ipod ไป itunes

ทำไมเราถึงต้องการรูปแบบการออกแบบสถาปัตยกรรม?

ในระหว่างการพัฒนาซอฟต์แวร์ คุณสามารถใช้รูปแบบการออกแบบสถาปัตยกรรมเพื่อแก้ปัญหาทั่วไปได้ สถาปัตยกรรมที่ดีสามารถช่วยให้คุณ:





  • แยกงานที่ซับซ้อนออกเป็นงานที่เรียบง่าย
  • ลดจุดบกพร่อง
  • สร้างรหัสที่ทดสอบได้และบำรุงรักษาได้

แต่หากไม่มีรูปแบบสถาปัตยกรรม คุณอาจประสบปัญหาในการรักษาตรรกะทางธุรกิจของแอป

โมเดล มุมมอง ViewModel คอนโทรลเลอร์ และผู้นำเสนอ

ก่อนที่คุณจะดูแต่ละรูปแบบ ต่อไปนี้คือคำที่ประกอบขึ้นเป็น:





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

รูปแบบ MVC, MVP และ MVVM

Model-View-Controller Pattern

ดิ รูปแบบสถาปัตยกรรม MVC เป็นรายแรกและเป็นที่นิยมในปัจจุบันในด้านเว็บแอปพลิเคชัน ได้รับการแนะนำในปี 1970 รูปแบบนี้ช่วยให้คุณสร้างแอปพลิเคชันเกี่ยวกับ Separation of Concerns (SoC) ช่วยลดความยุ่งยากในการทดสอบ บำรุงรักษา และพัฒนาแอปพลิเคชันของคุณ

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

ข้อดีบางประการของรูปแบบ MVC คือ:

  • การแยกข้อกังวล (เน้นมากขึ้น)
  • ทำให้การทดสอบและจัดการโค้ดง่ายขึ้น
  • ส่งเสริมการแยกเลเยอร์ของแอปพลิเคชัน
  • องค์กรรหัสที่ดีขึ้นและนำมาใช้ใหม่

นี่คือวิธีการทำงานของ MVC:

  รูปภาพของไดอะแกรมที่แสดงให้เห็นว่า MVC ทำงานอย่างไร

เนื่องจาก SoC ทำให้ MVC สามารถลดขนาดโค้ดและสร้างโค้ดที่ดีที่สะอาดและจัดการได้

แบบ-ดู-พรีเซ็นเตอร์

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

ใน MVP ผู้นำเสนอมีฟังก์ชันการทำงานของ 'คนกลาง' เนื่องจากตรรกะของการนำเสนอทั้งหมดถูกผลักไปที่มัน มุมมองและผู้นำเสนอใน MVP ยังเป็นอิสระจากกันและโต้ตอบผ่านอินเทอร์เฟซ

น่าเสียดายที่ google play store หยุดทำงาน

นี่คือภาพประกอบว่ารูปแบบ MVP ทำงานอย่างไร:

  รูปภาพของไดอะแกรมที่แสดงให้เห็นว่า MVP ทำงานอย่างไร

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

Model-View-ViewModel Pattern

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

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

นี่คือภาพประกอบว่า MVVM ทำงานอย่างไร:

  รูปภาพของไดอะแกรมที่แสดงให้เห็นว่า MVVM ทำงานอย่างไร

เมื่อใดควรใช้ MVC, MVP และ MVVM

เมื่อคุณได้เรียนรู้เกี่ยวกับแต่ละรูปแบบแล้ว ให้ค้นหาว่าเมื่อใดควรใช้รูปแบบเหล่านี้

เมื่อใดควรใช้MVC

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

เมื่อใดควรใช้ MVP

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

เมื่อใดควรใช้ MVVM

คุณจะต้องใช้ MVVM เมื่อ:

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

คุณควรเลือกรูปแบบใด

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

วิธีลบตัวเตือนการอัปเดต windows 10

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