เหตุผลที่การเรียกใช้ TileHandler ในบริบทแบบสแตติกไม่ใช่การออกแบบที่ดีที่สุดเท่าที่จะเป็นไปได้นั่นคือมันมาพร้อมกับส่วนประกอบของการออกแบบของคุณที่อาจแยกได้
หากคุณเลือกที่จะมี TileHandler มากกว่าหนึ่งคนในอนาคตคุณจะต้องทำงานมากมายเพื่อรองรับการเปลี่ยนแปลงนี้
หากคุณเลือกที่จะลบ TileHandler คุณจะต้องทำงานมากมายเพื่อรองรับการเปลี่ยนแปลงนี้
สมมติว่าคุณสร้างระดับ / โซนที่แตกต่างกันในอนาคตที่จัดการกับกระเบื้องในวิธีที่แตกต่างจาก TileHandler ปัจจุบันของคุณ จากนั้นคุณต้องมีวิธีการระบุวิธีการเรียงต่อกันที่จะใช้หรือคุณต้องเรียกใช้ตัวจัดการอื่น
หาก TileHandler ถูกส่งเป็นพารามิเตอร์ไปยังวัตถุที่ใช้มันคุณสามารถส่งต่อได้ในครั้งถัดไปหรือตั้งค่าตัวจัดการไทล์อื่นบนวัตถุที่ใช้ในภายหลัง
โดยส่วนตัวแล้วฉันเข้าถึงหลาย ๆ อย่างในเกม XNA ของฉันจากบริบทแบบสแตติกและคิดว่าฉันจะไม่มีมากกว่าหนึ่งในนั้น
หากคุณต้องการให้รหัสเครื่องยนต์ของเกมของคุณนำกลับมาใช้ใหม่ในเกมถัดไปของคุณคุณอาจต้องเขียนสิ่งที่คุณเขียนในปัจจุบันเป็นส่วนใหญ่
ในระยะสั้น:
เพื่อไม่ให้ใช้บริบทแบบคงที่:
การส่งวัตถุเป็นพารามิเตอร์ให้มากที่สุดเท่าที่จะเป็นไปได้แยกองค์ประกอบของเกมออกและอนุญาตให้คุณแก้ไข / นำกลับมาใช้ใหม่สำหรับโครงการปัจจุบันหรืออนาคตได้ง่ายขึ้น นอกจากนี้ยังช่วยให้คุณจัดการความซับซ้อนของรหัสจำนวนมากได้ง่ายขึ้นเล็กน้อย (คิดว่ามีผู้จัดการแบบคงที่หลายร้อยคนในคลาสเกมของคุณในเกมใหญ่)
ในความโปรดปรานของบริบทคงที่:
การประกาศและการเข้าถึงออบเจกต์จากบริบทแบบสแตติกทำให้การเขียนเกมเล็ก ๆ ง่ายขึ้นโดยไม่ต้องใช้ตัวจัดการสแตติกนับร้อย ลดความซับซ้อนของวิธีการและตัวสร้างจำนวนมากโดยไม่ต้องใช้พารามิเตอร์พิเศษอย่างน้อยหนึ่งพารามิเตอร์ที่เข้าถึงแบบคงที่แทน