มีการอ้างอิง MVVM ทีละขั้นตอนง่าย ๆ หรือไม่?
ใช่แล้ว ลองดูที่นี่
MVVM เป็น super-set หรือ sub-set ของ MVC หรือไม่?
MVVM เป็นของตระกูล MVC ดังนั้นถ้าคุณสามารถพูดได้มันเป็นส่วนย่อย เป็นตัวแปรในการแยก UI จากตรรกะทางธุรกิจที่อยู่ด้านล่าง ฉันจะอธิบายว่ามันเป็นพี่น้องของ MVC ตั้งแต่ยุคแรก ๆ ของคน OOP ได้ค้นหาวิธีที่จะแยก UI จากตรรกะของพวกเขา MVC เป็นแม่แบบแรกที่วิวัฒนาการ มันค่อนข้างง่าย แต่คนส่วนใหญ่ไม่ได้ทำให้ถูกต้อง มุมมองเป็นเพียงผู้สังเกตการณ์ของโมเดลและเรียกใช้เมื่อจำเป็น คอนโทรลเลอร์เป็นเพียงกลยุทธ์สำหรับมุมมองในการสื่อสารกับโมเดลตัวอย่างเช่นเมื่อคุณต้องการพฤติกรรมที่แลกเปลี่ยนได้ (เช่น ReadonlyController, AdminController) MVC ประสบความสำเร็จอย่างมากและเป็นแนวปฏิบัติที่ดีที่จะนำไปใช้
MVVM เป็นชนิดเฉพาะของรูปแบบ MVP ตามที่อธิบายมาร์ตินฟาวเลอร์ MVP พยายามที่จะทำให้มุมมองเป็นใบ้ที่สุดเท่าที่จะทำได้ (ในขณะที่ยังคงรับข้อมูลจากผู้ใช้ ฯลฯ ) ซึ่งจะช่วยเพิ่มความสามารถในการทดสอบ มันมีจุดมุ่งหมายเพื่อให้เป็นนามธรรมของมุมมองและการมีปฏิสัมพันธ์กับตรรกะที่จะนำเสนอ ผู้นำเสนอสื่อสารกับโมเดล / ตรรกะทางธุรกิจเท่านั้นและอัพเดตมุมมอง Martin Fowler อธิบาย MVVM ค่อนข้างมากในรูปแบบการนำเสนอของเขา
มุมมองจะถูกแยกออกอย่างสมบูรณ์ใน ViewModel เมื่อView
ความต้องการของทรัพย์สินViewModel
ความต้องการที่จะมีเช่นกัน มัน (ViewModel) มีความหมายว่าเป็นอิสระอย่างสมบูรณ์ของเทคโนโลยี UI พื้นฐานซึ่งเป็นนามธรรม ในการสื่อสารระหว่าง View และ ViewModel จำเป็นต้องใช้รูปแบบการซิงโครไนซ์ (เช่น Observer) นี่ไม่ใช่เรื่องง่ายที่จะประสบความสำเร็จในระบบเว็บ MVVM แตกต่างจาก MVP เนื่องจากมุมมองไม่ได้ผูกกับแบบจำลอง / ตรรกะทางธุรกิจของคุณอีกต่อไป แต่ไปยัง ViewModel แทน
รูปแบบใดที่ทันสมัยและฉันควรเลือกรูปแบบใดสำหรับแอพพลิเคชั่นของ Windows & Web?
รูปแบบการนำเสนอ (เหมือน MVVM) ในทางทฤษฎีควรเป็นอิสระอย่างสมบูรณ์จากเทคโนโลยี UI ที่ใช้งานอยู่ อย่างไรก็ตามต้องครอบคลุมด้านการประสานข้อมูล สามารถทำได้อย่างง่ายดายโดยการผูกกับคำสั่งและคุณสมบัติด้วย WPF ที่กาวประสานอยู่แล้ว ด้วย ASP.NET นี่คือเรื่องราวที่แตกต่าง อย่างไรก็ตามมีบทความเกี่ยวกับ CodeProjectซึ่งใช้รูปแบบการนำเสนอที่มีเทคโนโลยี Windows UI ทั้งหมด ได้ดู