วิธีที่ดีที่สุดในการจัดโครงสร้างแอปพลิเคชัน Android คืออะไร


26

ฉันเริ่มต้นแอปพลิเคชัน Android ใหม่ โครงสร้างที่ดีที่สุดในการใช้คืออะไร?

ฉันวางแผนที่จะทำให้มันเป็นการออกแบบหลายแพคเกจดังต่อไปนี้:

  1. แพ็คเกจหลักรวมถึงกิจกรรม
  2. บริการและชั้นข้อมูล
  3. แพ็คเกจเอนทิตีรวมถึงคลาสเอนทิตี

    คำแนะนำใด ๆ ?


คำตอบ:


11

อันดับแรกขึ้นอยู่กับแอปพลิเคชันที่คุณกำลังทำ

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

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

จากสถานการณ์ให้ตัดสินใจว่าแอปของคุณจะเป็นอย่างไร เป็นบริการกิจกรรมวิดเจ็ตแม้แต่ผู้ให้บริการเนื้อหาหรือระบบที่ซับซ้อนรวมถึงส่วนประกอบที่แตกต่างกัน ทดสอบการตัดสินใจของคุณกับสถานการณ์

ในกรณีของระบบที่ซับซ้อนแจกจ่ายฟังก์ชันการทำงานและเอนทิตี้ข้อมูลระหว่างองค์ประกอบของแอปพลิเคชัน ทำรายการของส่วนประกอบและสิ่งที่พวกเขา (กิจกรรมหรืออื่น ๆ )

จัดทำรายการองค์ประกอบ UI พร้อมคำอธิบายสิ่งที่พวกเขาทำ (ยังไม่ดี) สิ่งเหล่านี้จะเป็นวิดเจ็ตและกิจกรรมหรือชิ้นส่วนหรือโครงร่างในภายหลัง

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

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

สร้างคลาสการทดสอบ (JUNITs หรือ TestNG ที่ดีกว่า) สำหรับการเติม UI และเอนทิตีข้อมูลด้วยข้อมูลทดสอบและเรียกใช้งาน

อะแดปเตอร์ไม่จำเป็นต้องเป็นแบบสาธารณะเนื่องจากใช้ใน GroupView แม่เท่านั้น ดังนั้นไม่มีไฟล์สำหรับอะแดปเตอร์ปกติ

อย่าได้ใส่ Globals ทั้งหมดในชั้นเรียนแบบคงที่พิเศษ - มันคือการปฏิบัติที่ไม่ดี คุณกำลังผสมรหัสและการกำหนดค่า ใช้วิธีแก้ปัญหาที่น่าสนใจมากนี้ สำหรับตอนนี้มันเป็นสิ่งที่ดีที่สุดที่ฉันรู้สำหรับ Android

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

อย่าใช้ค่าคงที่ที่กำหนดไม่ได้ในรหัส! อาจเป็นชื่อของคุณเท่านั้น :-) ค่าคงที่ทุกค่าไม่คงที่ในบางครั้ง

ในอีกด้านหนึ่งถ้าคุณบางคนรหัสไม่ปกติจาวา แต่สคริปต์ - การผสมผสานของข้อมูลและภาษาจากนั้นคุณสามารถและต้องผสมข้อมูลและรหัส

ทำเช่นนั้นเสมอ: เขียนอะไรบางอย่าง - เชื่อมต่อบางสิ่งเข้ากับกลุ่ม - เพิ่มการทดสอบสำหรับสิ่งใหม่นี้ - ทดสอบอันใหม่ - ทดสอบซ้ำ - ก้าวเล็ก ๆ เท่านั้น!

แก้ไข นอกจากนี้คุณยังสามารถใช้การพัฒนาที่ขับเคลื่อนการทดสอบ - เขียนการทดสอบก่อนรหัสที่เหมาะสม ด้วยวิธีนี้การรันการทดสอบก่อนที่รหัสจะพร้อมคุณมีการทดสอบสองครั้ง - ดังนั้นคุณตรวจสอบว่าการทดสอบตอบสนองต่อรหัสที่ไม่ถูกต้องจริงๆ


7

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

  1. แพ็คเกจหลักพร้อมกิจกรรมหน้าจอทั้งหมด
  2. คลาสตัวแปลงถ้าฉันใช้ ListView, GridView ที่ต้องการ BaseAdapter เป็นต้น
  3. การแยกตัวช่วยถ้าใช้
  4. ฐานข้อมูล
  5. Entity Classes และ Classes เพื่อจัดเก็บตัวแปรแบบคงที่
  6. บริการและตัวรับสัญญาณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.