Я багато разів бачив у вихідному коді подібні речі [ну, це більше псевдо C ++ ідея мого]
typedef shared_ptr<Resource> ResourcePtr;// for ease
ResourcePtr sound1 = resourceManager.Get<SoundResource>("boom.ogg");
sound1->Play();
ResourcePtr sprite = resourceManager.Get<Image>("sprite.png");
Мені було просто цікаво, наскільки корисним був такий клас, що таке:
- Завантажені медіа-файли
- Зберігав їх у пам’яті
- Зробив це на початку рівня завантаження екрана.
- Прибраний
Замість того, щоб мати систему:
- Ресурси утримуються лише суб'єктами господарювання або є вільними.
- Відповідає за власне завантаження в пам'ять.
Перший - це «менеджер» як такий; те, що я відчуваю, вказує на неправильне використання. Однак це дозволяє передавати щось на зразок вектора імен ресурсів, а не потрібно намагатися шукати все, що потрібно завантажити.