MVW คืออะไร


351

นี่คือคำอธิบายเนื้อหาสำหรับหน้า AngularJS:

AngularJS คือ HTML ที่ควรจะเป็นหากถูกออกแบบมาสำหรับการสร้างเว็บแอป เทมเพลตสำหรับการเปิดเผยที่มีการเชื่อมโยงข้อมูล, MVW, MVVM, MVC, การฉีดขึ้นต่อกันและเรื่องราวความสามารถในการทดสอบที่ยอดเยี่ยมทั้งหมดถูกนำไปใช้กับ JavaScript ฝั่งไคลเอ็นต์ที่แท้จริง!

MVW นั้นจะยืนหยัดเพื่ออะไร? (พิจารณา MVC, MVVW, MVP ฯลฯ การทะเลาะกันฉันจะเดา "อะไรก็ตาม", Model-View-Anything = P)


ฉันคิดว่าคุณพูดถูก Model-View-Anything! code.google.com/p/dark-matter-data/wiki/MVWOverview
John

คำตอบ:


447

มันยืนหยัดเพื่ออะไรก็ตามเช่นเดียวกับในสิ่งที่เหมาะกับคุณ

MVC กับ MVVM กับ MVP เป็นหัวข้อที่ถกเถียงกันอยู่ว่านักพัฒนาหลายคนสามารถใช้เวลาหลายชั่วโมงในการโต้วาทีและโต้เถียงกัน

เป็นเวลาหลายปี + AngularJS ใกล้เคียงกับ MVC (หรือมากกว่าหนึ่งในตัวแปรฝั่งไคลเอ็นต์) แต่เมื่อเวลาผ่านไปและด้วยการปรับโครงสร้างและการปรับปรุง API หลายครั้งทำให้ตอนนี้ใกล้ชิดกับ MVVM มากขึ้น - ขอบเขต $ วัตถุอาจพิจารณา ViewModel ที่ การตกแต่งด้วยฟังก์ชั่นที่เราเรียกว่าคอนโทรลเลอร์

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

ต้องบอกว่าฉันอยากเห็นนักพัฒนาสร้างแอพ kick-ass ที่ได้รับการออกแบบมาอย่างดีและติดตามความกังวลมากกว่าที่จะเห็นพวกเขาเสียเวลาเถียงเกี่ยวกับเรื่องไร้สาระ MV * และด้วยเหตุนี้ฉันจึงประกาศให้ AngularJS เป็นกรอบ MVW - Model-View-Anything อยู่ที่ไหนไม่ว่าย่อมาจาก "สิ่งที่เหมาะกับคุณ"

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


8
@ FrançoisWahl: ฉันพูดสิ่งเดียวกันกับตัวเองไม่ห้าวินาทีก่อนที่จะอ่านความคิดเห็นของคุณ MV * อาจจะชัดเจนขึ้นในทันทีสำหรับนักพัฒนาซอฟต์แวร์ส่วนใหญ่ที่มีแนวโน้มคุ้นเคยกับการประชุม '*' สัญลักษณ์ตัวแทนที่แพร่หลาย
David Frye

2
คุณไม่สามารถ Google MV * นอกจากนี้ ... "อะไรก็ตาม" บ่งบอกถึงความคับข้องใจที่หลายคนรู้สึกเมื่อพูดถึงความหมายของ MVx
Clintm

143

MVW ยืนสำหรับModel-View-สิ่งที่

เพื่อความสมบูรณ์นี่คือคำย่อทั้งหมดที่กล่าวถึง:

MVC - Model-View-Controller

MVP - Model-View-Presenter

MVVM - Model-View-ViewModel

MVW / MV * / MVx - Model-View- Anything

และอื่น ๆ :

HMVC - โมเดลมุมมอง - ตัวควบคุมลำดับชั้น

MMV - มุมมองโมเดลแบบหลายจุด

MVA - Model-View-Adapter


22

ต้องบอกว่าฉันอยากเห็นนักพัฒนาสร้างแอพ kick-ass ที่ได้รับการออกแบบมาอย่างดีและติดตามความกังวลมากกว่าที่จะเห็นพวกเขาเสียเวลาเถียงเกี่ยวกับเรื่องไร้สาระ MV * และด้วยเหตุนี้ฉันจึงประกาศให้ AngularJS เป็นกรอบ MVW - Model-View-Anything สิ่งใดก็ตามที่หมายถึง "สิ่งใดก็ตามที่เหมาะกับคุณ"

เครดิต: AngularJS Post - Igor Minar



1

ฉันรู้สึกว่า MWV (Model ดูอะไรก็ตาม) หรือ MV * เป็นคำที่มีความยืดหยุ่นมากขึ้นเพื่ออธิบายความเป็นเอกลักษณ์ของ Angularjs บางอย่างในความคิดของฉัน มันช่วยให้ฉันเข้าใจว่ามันเป็นมากกว่าเฟรมเวิร์ก JavaScript MVC (Model View Controller) แต่ก็ยังคงใช้ MVC เนื่องจากมีมุมมองโมเดลและคอนโทรลเลอร์

นอกจากนี้ยังถือได้ว่าเป็นรูปแบบ MVP (Model View Presenter) ฉันคิดว่าผู้นำเสนอเป็นตรรกะทางธุรกิจของอินเทอร์เฟซผู้ใช้ใน Angularjs สำหรับมุมมอง ตัวอย่างเช่นโดยใช้ตัวกรองที่สามารถจัดรูปแบบข้อมูลสำหรับการแสดงผล ไม่ใช่ตรรกะทางธุรกิจ แต่เป็นตรรกะการแสดงผลและทำให้ฉันนึกถึงรูปแบบ MVP ที่ฉันใช้ใน GWT

นอกจากนี้ยังสามารถเป็น MVVM (Model View View Model) ส่วน View Model เป็นการเชื่อมโยงสองทางระหว่างสอง สิ่งสุดท้ายคือ MVW เนื่องจากมีรูปแบบอื่น ๆ ที่คุณสามารถใช้เช่นเดียวกับ @Steve Chambers

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.