TileHandler'ı statik bir bağlamda çağırmanın nedeni mümkün olan en iyi tasarım değildir, aksi takdirde ayrılabilecek tasarımınızın bileşenlerini birleştirmesidir.
Gelecekte birden fazla TileHandler'a sahip olmayı seçerseniz, bu değişikliği gerçekleştirmek için çok fazla iş yapmanız gerekir.
TileHandler'ı kaldırmayı seçerseniz, bu değişikliği gerçekleştirmek için çok fazla iş yapmanız gerekir.
Gelecekte fayansları geçerli TileHandler'ınızdan farklı bir şekilde işleyen farklı bir seviye / bölge oluşturduğunuzu varsayalım. Daha sonra, kullanmak için döşeme işleme yöntemini belirtmenin bir yoluna sahip olmanız veya farklı bir işleyici çağırmanız gerekir.
TileHandler, onu kullanan nesnelere parametre olarak iletildiyse, bir dahaki sefere farklı bir geçiş yapabilir veya daha sonra kullanan nesnelere farklı bir döşeme işleyicisi ayarlayabilirsiniz.
Şahsen, XNA oyunlarımdaki birçok şeye statik bir bağlamdan erişiyorum ve hiçbir zaman birden fazlasına sahip olamayacağımı varsayıyorum.
Oyun motoru kodunuzu bir sonraki oyununuzda yeniden kullanmak istiyorsanız, büyük olasılıkla şu anda statik olarak yazdığınız şeylerin çoğunu yeniden yazmanız gerekecektir.
Kısacası:
Statik bağlam kullanılmaması lehine:
Nesneleri olabildiğince parametre olarak geçirmek, oyun öğelerini ayırır ve mevcut veya gelecekteki projeler için bunları kolayca değiştirmenize / yeniden kullanmanıza olanak tanır. Ayrıca büyük miktarda kodun karmaşıklığını biraz daha kolay yönetmenizi sağlar (büyük bir oyunda oyun sınıfınızda yüzlerce statik yöneticiye sahip olmayı düşünün).
Statik bağlam lehine:
Statik bir bağlamdan nesnelere bildirimde bulunmak ve erişmek, yüzlerce statik yönetici gerektirmeyen küçük oyunlar yazmayı kolaylaştırır. Statik olarak erişilen bir veya daha fazla fazladan parametreye ihtiyaç duymadan birçok yöntemi ve yapıcıyı basitleştirir.