MVVMCROSS อำนวยความสะดวกในการแยกข้อกังวลในแอพข้ามแพลตฟอร์มโดยใช้รูปแบบ Model-View-ViewModel (MVVM) ซึ่งส่งเสริมการแบ่งความรับผิดชอบที่ชัดเจนระหว่างองค์ประกอบที่แตกต่างกันของแอปพลิเคชัน นี่คือวิธีที่ MVVMcross บรรลุเป้าหมายนี้:
การใช้รูปแบบ MVVM
MVVMCROSS ถูกสร้างขึ้นรอบ ๆ สถาปัตยกรรม MVVM ซึ่งประกอบด้วยสามองค์ประกอบหลัก:
- โมเดล: แสดงถึงข้อมูลและตรรกะทางธุรกิจของแอปพลิเคชัน มันห่อหุ้มโครงสร้างข้อมูลและการดำเนินการที่เป็นอิสระจากส่วนต่อประสานผู้ใช้
- ดู: จัดการส่วนต่อประสานผู้ใช้และการโต้ตอบของผู้ใช้ มันมีหน้าที่แสดงข้อมูลและรับอินพุตจากผู้ใช้
- ViewModel: ทำหน้าที่เป็นตัวกลางระหว่างโมเดลและมุมมอง มันเปิดเผยข้อมูลและคำสั่งที่มุมมองสามารถผูกกับการแยกมุมมองจากโมเดลได้อย่างมีประสิทธิภาพ
ด้วยการรักษาการแยกนี้ MVVMCROSS ทำให้มั่นใจได้ว่าแต่ละองค์ประกอบจะมุ่งเน้นไปที่บทบาทเฉพาะโดยไม่ต้องรับผิดชอบ ตัวอย่างเช่นมุมมองไม่ควรมีตรรกะทางธุรกิจและ ViewModel ไม่ควรจัดการกับองค์ประกอบ UI โดยตรง
ไลบรารีคลาสแบบพกพา (PCL) สำหรับตรรกะที่ใช้ร่วมกัน
MVVMCROSS ใช้ไลบรารีคลาสแบบพกพา (PCL) เพื่อเป็นที่ตั้งของ ViewModels รุ่นและอินเทอร์เฟซสำหรับบริการเฉพาะแพลตฟอร์ม PCL นี้ทำหน้าที่เป็นโครงการหลักที่มีตรรกะทางธุรกิจที่ใช้ร่วมกันและการจัดการฐานข้อมูล ด้วยการแยกตรรกะทางธุรกิจออกเป็น PCL MVVMCROSS ช่วยให้นักพัฒนาสามารถแบ่งปันส่วนสำคัญของรหัสผ่านแพลตฟอร์มที่แตกต่างกันเช่น iOS, Android และ Windows วิธีการนี้ไม่เพียง แต่อำนวยความสะดวกในการใช้รหัสซ้ำ แต่ยังทำให้มั่นใจได้ว่าตรรกะทางธุรกิจยังคงสอดคล้องกันในแพลตฟอร์ม
การเชื่อมโยงข้อมูลและการสื่อสาร
MVVMCROSS ใช้ข้อมูลที่มีผลผูกพันกับการเชื่อมโยงมุมมองด้วย ViewModels ที่สอดคล้องกัน กลไกนี้อนุญาตให้มุมมองอัปเดตโดยอัตโนมัติเมื่อ ViewModel เปลี่ยนไปและในทางกลับกัน การเชื่อมโยงข้อมูลเป็นสิ่งสำคัญสำหรับการรักษาความกังวลเนื่องจากช่วยให้มุมมองตอบสนองต่อการเปลี่ยนแปลงใน ViewModel โดยไม่จำเป็นต้องทราบรายละเอียดการใช้งานของตรรกะทางธุรกิจ
นอกจากนี้ MVVMCROSS ยังสนับสนุนเทคนิคการสื่อสารที่หลากหลายเช่นคำสั่งและเหตุการณ์ซึ่งช่วยเพิ่มการแยกข้อกังวลโดยการอนุญาตให้มุมมองเรียกใช้การกระทำใน ViewModel โดยไม่ต้องเข้าถึงสถานะภายในโดยตรง
การฉีดพึ่งพาและสถาปัตยกรรมปลั๊กอิน
MVVMcross รวมการฉีดพึ่งพา (DI) และสถาปัตยกรรมปลั๊กอินเพื่อจัดการการพึ่งพาและขยายความสามารถของเฟรมเวิร์ก การฉีดพึ่งพาช่วยให้แน่ใจว่าส่วนประกอบมีการเชื่อมโยงกันอย่างหลวม ๆ ทำให้ง่ายต่อการทดสอบและบำรุงรักษาแอปพลิเคชัน สถาปัตยกรรมปลั๊กอินช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชั่นใหม่โดยไม่ต้องเปลี่ยนเฟรมเวิร์กหลักซึ่งจะรักษาความกังวลที่สะอาด
การจัดการวงจรชีวิต
MVVMCROSS ให้คุณสมบัติการจัดการวงจรชีวิตสำหรับ ViewModels ซึ่งเชื่อมโยงกับวงจรชีวิตของมุมมอง ซึ่งหมายความว่า ViewModels สามารถแจ้งเตือนเมื่อมุมมองถูกสร้างขึ้นปรากฏขึ้นหายไปหรือถูกทำลาย การจัดการวงจรชีวิตดังกล่าวช่วยในการรักษาความกังวลที่สะอาดโดยการทำให้มั่นใจว่าทรัพยากรได้รับการทำความสะอาดอย่างเหมาะสมและสถานะของ ViewModel ได้รับการจัดการอย่างถูกต้อง
โดยสรุป MVVMCROSS อำนวยความสะดวกในการแยกข้อกังวลในแอพข้ามแพลตฟอร์มโดยการบังคับใช้รูปแบบ MVVM โดยใช้ PCL สำหรับตรรกะที่ใช้ร่วมกันการใช้ข้อมูลที่มีผลผูกพันและรวมการฉีดพึ่งพาและการจัดการอายุการใช้งาน คุณสมบัติเหล่านี้มีส่วนร่วมในสถาปัตยกรรมแอปพลิเคชันที่แข็งแกร่งสามารถบำรุงรักษาและปรับขนาดได้
การอ้างอิง:[1] https://www.linkedin.com/advice/0/what-best-way-enerure-sparation-concerns-mvvm-design-csadc
[2] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[3] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://www.mvvmcross.com/documentation/getting-started/getting-started
[7] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[8] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-already
[9] https://github.com/mvvmcross/mvvmcross