Şu gibi çelişkili görüşler duyuyorum:
- "Özel Yönetici sınıfları neredeyse hiçbir zaman doğru mühendislik aracı değildir"
- "Özel Yönetici sınıfları (şu anda) binlerce kaynakla büyük bir projede hayatta kalmanın en iyi yoludur"
Aşağıdaki işlevselliğe sahip klasik bir ResourceManager sınıfı alalım:
- Varlıkları yükler (dokular, ses, 3B modeller, vb.)
- Önbelleği koruyarak varlıkların yalnızca bir kez yüklenmesini sağlar
- Referans, yeniden konumlandırılabilecek olup olmadığını belirlemek için varlıkları sayar
- Gerçek varlıkların nereden geldiğini gizler (örneğin, varlık başına bir dosya olabilir veya tek bir paket dosyasındaki tüm varlıklar veya varlıklar ağ üzerinden yüklenebilir)
- Programı yeniden başlatmadan varlıkları yeniden yükleyebilir, bu da oyunda çalışan sanatçılar için son derece yararlıdır.
Ayrıca, bu ResourceManager nesnelerinin tekil değilmiş gibi davranarak ve bunun yerine bağımlılık enjeksiyonu yoluyla aktarıldığını varsayarak "singletonlar kötü" argümanını tablodan çıkaralım .
Sonra "fabrika kullan" veya "fabrika olarak adlandır" argümanı vardır. Benim sorunum, evet, bu bir fabrika, ama aynı zamanda bir önbellek ve bir yeniden yükleyici (daha iyi bir kelime eksikliği için). Bir fabrika olarak adlandırmak, onu düzgün bir şekilde tanımlamaz ve uygun bir fabrika yaparsam önbellekleme ve yeniden yükleme nerede uygulanır?
"Yönetici" sınıflarının genellikle kötü mimarinin bir belirtisi olduğunu kabul ediyorum, ancak bu özel durumda nasıl yeniden yapılandırılabilir ve hala tüm işlevselliği koruyabilir ? Bu bir "Yönetici" sınıfının gerçekten uygun olduğu bir durum mudur?