Я пытаюсь решить, как я хочу реализовать звуковые эффекты в своей программе. Я обсуждаю между двумя вариантами.Выбор дизайна для звуковых эффектов
1) Создайте абстрактный интерфейс SoundEffect
и получите от него каждый звуковой эффект. Каждый звуковой эффект - это собственный класс. При построении он открывает звуковой файл и воспроизводит, а после уничтожения он закрывает файл. Главный недостаток, который я вижу в этом подходе, заключается в том, что у меня будет очень много мелких объектов, что значительно увеличит количество файлов. Я мог бы добавить несколько звуковых эффектов в один заголовок (те, которые связаны), но я не уверен.
2) Поскольку воспроизведение любого звукового эффекта вызывает один и тот же материал, с той лишь разницей, что он открывается, я мог бы создать один класс SoundEffect, причем его конструктор является перечислителем, который содержит имена звуковых эффектов , Класс будет использовать переключатель для воспроизведения соответствующего звука.
Очевидно, что я обсуждаю подход ООП и более «традиционный» подход, и мне интересно, какой лучший выбор дизайна здесь. Я сильно склоняюсь к подходу ООП, но я не уверен, как я хочу структурировать файлы. Если у вас есть другие рекомендации, я был бы рад услышать их.
Я использую библиотеку, которая обрабатывает большинство вещей, о которых вы упомянули. Мне просто нужно организовать звуковые файлы в чистом виде. Борьба с звуковым устройством не проблема. – Anonymous
Это если вы когда-нибудь захотите использовать другой звук api. и если у вас нет необходимости использовать класс в первую очередь. –
Чтобы распространить на то, что @John говорит, почему звуковой эффект должен иметь метод «игры»? Звук не может воспроизводиться сам. Он может воспроизводиться на каком-то устройстве, но он не может просто решить сыграть сам. Могут быть другие операции, которые вы можете выполнять в звуковом эффекте изолированно, например, трансформируя его различными способами, изменяя высоту тона или громкость или многое другое. Если вам нужно что-то подобное, создание класса для звукового эффекта может иметь смысл. Но способность воспроизводить звук принадлежит звуковому устройству, а не звуковому эффекту. – jalf