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


13

คำถามคืออธิบายตนเองเพียงเพื่อเพิ่มความคิดของฉัน:
เท่าที่ฉันได้อ่านเลเยอร์การนำเสนอใน Clean arch มีความรับผิดชอบเช่นเดียวกับใน MV ใน MVP

วิธีหนึ่งตัดสินใจเลือกรูปแบบหนึ่งแทนแบบอื่น


MVP เป็นส่วนหนึ่งของสถาปัตยกรรมแบบสะอาดบทความนี้ควรอ่าน androidwave.com/android-mvp-architecture-for-beginners-demo-app
Surya Prakash Kushawah

คำตอบ:


15

สิ่งที่ Bob Martin เรียกว่า " Clean Architecture " นั้นเป็น "meta architecture" ซึ่งเป็นแนวทางระดับสูงสำหรับการสร้างสถาปัตยกรรมแบบเลเยอร์ มันไม่ได้พูดอะไรเหมือน

"ต้องมีเลเยอร์โมเดลเลเยอร์มุมมองและเลเยอร์การนำเสนอและต้องดำเนินการโดยใช้MVP "

มันมีกฎทั่วไปมากขึ้นเท่านั้นสำหรับชั้นเช่น"การอ้างอิงจะต้องไปจากวงการนอกในแวดวงชั้นในไม่ได้ในทางกลับกัน" และเนื่องจากใน MVP มุมมอง (= UI) อาจรู้จักผู้นำเสนอ แต่ผู้นำเสนอถูกแยกออกจากมุมมองโดยอินเทอร์เฟซ MVP เป็นเพียงหนึ่งในวิธีการแก้ปัญหาที่เป็นไปได้หลายประการซึ่งเป็นไปตามกฎนี้

แน่นอนว่าเราสามารถใช้ MVP ในระบบ "Clean Architecture" แต่นี่ไม่ใช่วิธีการเดียวที่ถูกต้อง การออกแบบ UI ใด ๆ ที่ "เลเยอร์ด้านใน" ไม่รู้อะไรเป็นพิเศษเกี่ยวกับ UI และตำแหน่งที่ตามมานอกจากนี้ยังมีกฎ "Clean Architecture" อื่น ๆ ที่อธิบายไว้ในบทความของ Bob Martin จะดี


หากฉันทำตามรูปแบบ MVP จะรับประกันได้หรือไม่ว่าฉันไม่ได้ละเมิดกฎ Clean architecture
Mehrdad Shokri

1
@Mehrdad: ไม่ MVP ช่วยให้คุณได้รับ "Dependency Rule" ที่ถูกต้องและระหว่างเลเยอร์ View & Presenter เช่นเดียวกับระหว่าง Presenter และ Model ไม่น้อยไปกว่านี้อีกแล้ว คุณยังต้องใส่ใจทุกสิ่งอื่น ๆ ที่อธิบายไว้ในบทความของ Bob Martin ตัวอย่างเช่น MVP เพียงอย่างเดียวไม่ได้ห้ามไม่ให้ใครผ่านโครงสร้างข้อมูลที่ซับซ้อนระหว่างเลเยอร์ (ตรงข้ามกับโครงสร้างข้อมูลแบบง่ายที่กล่าวถึงในบทความซึ่งควรใช้สำหรับการข้ามเขตแดน)
Doc Brown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.