ฉันพัตต์กับพื้นฐานของ Java engine engine และฉันมาถึงจุดที่ฉันพร้อมที่จะเพิ่มในระบบ Event Manager
โดยหลักการแล้วฉันรู้ว่าEvent Manager ควรทำอย่างไร: อนุญาตให้วัตถุ "ลงทะเบียน" สำหรับบางเหตุการณ์และเมื่อใดก็ตามที่ Event Manager ได้รับแจ้งเหตุการณ์ให้เผยแพร่เหตุการณ์ไปยังผู้ฟังที่ "ลงทะเบียนแล้ว" สิ่งที่ฉันนิ่งงันคือวิธีเริ่มใช้งาน
ฉันไม่สามารถหาอะไรออนไลน์ได้เกี่ยวกับการนำระบบเหตุการณ์มาใช้ตั้งแต่เริ่มต้นดังนั้นฉันจึงมองหาสิ่งที่แนวปฏิบัติที่ดีที่สุดในกรณีนี้คือสิ่งที่ฉันควรทำและไม่ควรทำ
ตัวอย่างเช่นจำเป็นหรือไม่ที่แต่ละวัตถุในเกมของฉันจะมีEventManager
ฟิลด์ เนื่องจากวัตถุในเกมทั้งหมดของฉันสืบทอดมาจากคลาสแม่นามธรรมที่เป็นนามธรรมฉันคิดว่าฉันควรจะสามารถใช้การอ้างอิงแบบคงที่เพื่อให้มีเพียงอินสแตนซ์เดียวของ Event Manager ที่ใช้ร่วมกันระหว่างวัตถุทั้งหมดของเกม ฉันทำสิ่งที่คล้ายกันกับ Applet ที่ฉันใช้เพื่อแสดงผลแต่ละวัตถุแล้ว
ฉันคิดว่าฉันต้องเก็บชุดของเหตุการณ์ที่สมัครเป็นไปได้แต่ละรายการ - การเพิ่มและลบวัตถุเกมออกจากรายการตามต้องการ ฉันคิดว่ามันควรจะเป็นไปได้ที่จะสร้างคิวของเหตุการณ์ที่ต้องออกอากาศซึ่งในกรณีนี้ฉันสามารถเพิ่ม "EventManager.Update ()" ในเกมหลักและมีUpdate()
วิธีออกอากาศกิจกรรมที่เกิดขึ้นในตอนท้าย ของแต่ละเฟรม ในที่สุดวัตถุแต่ละอันจะมีHandleEvent(Event e)
วิธีการที่พวกเขาสามารถแยกวิเคราะห์และตอบสนองได้อย่างเหมาะสม
เสียงนี้เป็นไปในทิศทางที่เหมาะสมต่อการนำระบบดังกล่าวไปใช้หรือไม่หรือฉันกำลังออกนอกลู่นอกทางและ / หรือขาดอะไรบางอย่างที่ค่อนข้างชัดเจน?