Microsoft.Xna.Framework.Game
ชั้นมีบริการสถานที่ให้บริการที่ช่วยให้โปรแกรมเมอร์ที่จะเพิ่มบริการให้กับเกมของพวกเขาโดยการให้ประเภทของชั้นเรียนและเป็นตัวอย่างของชั้นเรียนเพื่อเพิ่มวิธีการ
ตอนนี้แทนที่จะต้องส่งผ่านAudioComponent
ไปยังคลาสและวิธีการทั้งหมดที่ต้องการแทนคุณเพียงแค่ส่งGame
อินสแตนซ์ของคุณและค้นหาบริการ (ตัวระบุบริการ )
ตอนนี้เนื่องจากเกมมีบริการมากมาย (GraphicsDevice, SceneGraph, AudioComponent, EffectsManager และอื่น ๆ ) คุณจะต้องผ่านเกมไปทุกอย่าง
เหตุใดจึงไม่เพียงทำให้อินสแตนซ์เหล่านี้เป็นซิงเกิลล่ะ ดีเพราะ Singletons ไม่ดีเพราะพวกเขามีสถานะทั่วโลกป้องกันการทดสอบและทำให้การออกแบบของคุณเปราะมากขึ้น ตัวระบุตำแหน่งการบริการนั้นได้รับการพิจารณาอย่างเท่าเทียมกันว่าเป็นรูปแบบการต่อต้านต่อคนจำนวนมากเพราะแทนที่จะผ่านการพึ่งพาวัตถุคุณเพียงผ่านตัวระบุตำแหน่งของบริการ (เกม) ซึ่งเป็นคู่รักที่มาพร้อมกับบริการที่เหลือ
เหตุใดจึงแนะนำบริการใน XNA และการพัฒนาเกม เป็นเพราะเกมแตกต่างจากโปรแกรมปกติและมีการผสมผสานอย่างมากกับส่วนประกอบและต้องผ่านทุกองค์ประกอบที่จำเป็นสำหรับการทำงานของคลาสจะยุ่งยากมาก? บริการเกมนั้นเป็นสิ่งชั่วร้ายที่จำเป็นในการออกแบบเกมหรือไม่? มีทางเลือกอื่นที่ไม่เกี่ยวข้องกับรายการพารามิเตอร์ที่มีความยาวและการมีเพศสัมพันธ์หรือไม่?