ต้องการคำแนะนำในการออกแบบปฏิสัมพันธ์ระหว่างส่วนต่าง ๆ ของแอปพลิเคชันของฉัน


10

ฉันกำลังพยายามออกแบบคลาส "หลัก" ของแอปพลิเคชัน Rich Desktop โดยใช้แพลตฟอร์ม NetBeans 7 แอปพลิเคชันนี้จะใช้บริการ HTTP และผ่าน "ระบบพุช" ผ่าน TCP จะได้รับข้อความ

  • เราเป็น 3 ผู้พัฒนาและเราต้องการพัฒนาโมดูลในแบบคู่ขนาน
  • แอปพลิเคชันจะถูกแบ่งเป็นชั้น (ข้อมูลธุรกิจการนำเสนอ)
  • เราจะใช้รูปแบบการนำเสนอเพื่อแยกความรับผิดชอบออกจากกัน
  • ข้อมูลที่ละเอียดบางอย่าง (ตัวอย่างเช่น bean Person) จะถูกแบ่งใช้โดยหลายหน้าจอ (และอาจแสดงบนหลายหน้าจอในเวลาเดียวกัน)
  • ...

เราสามารถพัฒนาแต่ละหน้าจอได้ แต่เราไม่รู้วิธีการจัดระเบียบแอปพลิเคชันทั้งหมดและกำหนดเนื้อหาแต่ละโมดูล

  1. ดังนั้นคุณมีคำแนะนำ (รูปแบบ / แนวปฏิบัติที่ดีที่สุด / แอพหนังสือ / ตัวอย่าง) เพื่อประสานงาน / จัดการการโต้ตอบภายในแอปพลิเคชันทั้งหมดหรือไม่
  2. คำแนะนำเกี่ยวกับวิธีการกำหนดเนื้อหาของโมดูล?

ขอบคุณ!


ตัวอย่างเล็ก ๆ เพื่อแสดงสิ่งที่ฉันต้องการสร้าง: แอปพลิเคชัน Foo User Management

  1. เปิดแอปพลิเคชัน
  2. ทางด้านซ้าย [explorer] เรามีรายชื่อของแพลตฟอร์ม (รายการจะถูกเก็บไว้ในไฟล์ในเครื่อง)
  3. ที่ด้านบนเรามีปุ่มเพื่อเพิ่มแพลตฟอร์มใหม่ (สามารถใช้ได้ด้วยการคลิกขวา)
  4. โดยการดับเบิลคลิกบนแพลตฟอร์มแอปจะเรียกใช้บริการ HTTP เพื่อดึงรายชื่อผู้ใช้ทั้งหมด รายการนี้จะปรากฏใน [แก้ไข] (ใน JTable)
  5. กระบวนการพื้นหลังเริ่มต้น: ผ่านการเชื่อมต่อ TCP ที่เราได้รับข้อความ
  6. เป็นไปได้ที่จะเพิ่มผู้ใช้ใหม่ด้วยปุ่มใน Toolbar

หากแอปพลิเคชั่นเปิดตัวบนพีซีเครื่องอื่นและหากผู้ใช้เชื่อมต่อกับแพลตฟอร์มเดียวกันรายชื่อผู้ใช้ของมันจะได้รับการอัพเดตแบบไดนามิก (เพิ่ม / ลบ / สถานะ: {ออฟไลน์ / ออนไลน์}) (ขอบคุณข้อความ)

ในอนาคตจะมีโมดูลแชท

คำถามของฉันคือ (ในคำอื่น ๆ ): คำแนะนำ / แนวทางปฏิบัติที่ดีที่สุดในการตัดสินใจเกี่ยวกับเนื้อหาของแต่ละโมดูล? หาก PM (Presentation Model) เป็นวิธีที่ดีในการแยกมุมมอง / ธุรกิจและข้อมูลและสร้างหน้าจอวิธีใดดีที่สุดในการเชื่อมโยงหลาย ๆ หน้าจอตาม PM ลองนึกภาพเราพัฒนาแชทโมดูลวิธีเพิ่มรายการ "หารือกับ ... " ในเมนูบริบทพร้อมใช้งานด้วยการคลิกขวาที่รายชื่อผู้ใช้?


3
ยังไม่ชัดเจนว่าคุณถามอะไร ลองยกตัวอย่างเล็ก ๆ เพื่ออธิบายคำถามของคุณ
Robert Harvey

โพสต์ที่ยอดเยี่ยมของ Geertjan Wielenga มีคำแถลงการณ์เกี่ยวกับคำสั่ง Tom Wheeler (สมาชิก NetBeans Dream Team): java.dzone.com/news/how-to-split-into-modules
Destroyica

คำตอบ:


5

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

ความคิดคือการมีการออกแบบที่จะช่วยให้คุณพัฒนากับความต้องการ

ฉันจะเริ่มต้นด้วยการสร้างอินเทอร์เฟซโมดูลฐานและให้อินเทอร์เฟซสำหรับทุกคนและอรรถประโยชน์บางอย่างรอบตัว ให้ทุกคนใช้โมดูลของตนเองตามฐานโมดูล


3

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

ดังนั้นเมื่อคุณคิดเกี่ยวกับgetPeopleบริการตรวจสอบให้แน่ใจว่าคุณคิดว่า UI รอง (ที่ไม่ใช่การแกว่ง) จะโต้ตอบกับบริการอย่างไร หากคุณจำได้ว่าคุณมีวิธีแก้ปัญหาที่ยืดหยุ่น / แยกได้

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