มันสมเหตุสมผลไหมที่จะใช้ ORM ในการพัฒนา Android?


27

มันเหมาะสมหรือไม่ที่จะใช้ ORM ในการพัฒนา Android หรือเป็นเฟรมเวิร์กที่เหมาะสำหรับการเชื่อมต่อที่แน่นขึ้นระหว่าง UI และเลเยอร์ DB หรือไม่?


ความเป็นมา : ฉันเพิ่งเริ่มต้นด้วยการพัฒนา Android และสัญชาตญาณแรกของฉัน (มาจากพื้นหลัง. net) คือการมองหา mapper เชิงสัมพันธ์วัตถุขนาดเล็กและเครื่องมืออื่น ๆ ที่ช่วยลด clode สำเร็จรูป (เช่น POJOs + OrmLite + Lombok )

อย่างไรก็ตามในขณะที่พัฒนาโปรแกรมประยุกต์ของเล่นครั้งแรกของฉันฉัน stumbled เมื่อชั้น UI AlphabetIndexerอย่างชัดเจนว่าต้องใช้เคอร์เซอร์ฐานข้อมูล: นั่นทำให้ฉันสงสัยว่าบางทีห้องสมุด Android อาจไม่เหมาะกับการแยก UI และเลเยอร์ DB อย่างเข้มงวดและฉันจะพลาดคุณสมบัติที่มีประโยชน์และประหยัดเวลามากมายถ้าฉันพยายามใช้ POJO ทุกที่ (แทนที่จะเข้าถึงฐานข้อมูลโดยตรง) )


ชี้แจง : ฉันค่อนข้างตระหนักถึงข้อดีของการใช้ ORM โดยทั่วไปฉันสนใจเป็นพิเศษในการเล่นไลบรารีคลาส Android พร้อมกับมันได้ดีเพียงใด

คำตอบ:


20

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

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

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

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


6

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

หากคุณกำลังเขียนโค้ด Android ใหม่ตั้งแต่ต้นฉันจะหลีกเลี่ยงโมเดลข้อมูลในหน่วยความจำเว้นแต่ว่าแอปจะทำการจัดการ OO ที่ซับซ้อนเช่นโปรแกรม CAD เป็นต้น แต่สำหรับโปรแกรมส่วนใหญ่ให้เก็บตัวแบบข้อมูลไว้ในฐานข้อมูลและปล่อยให้เชนของเคอร์เซอร์ตัวแปลงและตัวออบเจ็กต์ดูยกของหนักมากสำหรับคุณ

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