Курсовые - Развлекательное приложение “Falling Ball”

Разработка системы управления звукового сопровождения

Шаблон проектирования или паттерн в разработке программного обеспечения — повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Шаблоны нельзя преобразовать в код, это лишь пример решения поставленной задачи, который можно использовать в различных ситуациях.

Существует три вида шаблонов:

  • Поведенческие
  • Порождающие
  • Структурные

Поведенческие шаблоны – это паттерны, которые решают задачи эффективного и безопасного взаимодействия между объектами программы. Поведенческие паттерны:

  • цепочка обязанностей – который позволяет передавать запросы последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи
  • команда – превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций
  • итератор – даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления
  • посредник – позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс–посредник
  • снимок – позволяет сохранять и восстанавливать прошлые состояния объектов, не раскрывая подробностей их реализации
  • наблюдатель – создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах
  • состояние – позволяет объектам менять поведение в зависимости от своего состояния
  • стратегия – определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы
  • шаблонный метод – определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы
  • посетитель – позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться

 

Порождающие шаблоны – шаблоны проектирования, которые отвечают за удобное и безопасное создание новых объектов или даже целых семейств объектов. Существуют следующие порождающие шаблоны:

  • фабричный метод – определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов
  • абстрактная фабрика – позволяет создавать семейства связанных объектов, не привязываясь к конкретным классам создаваемых объектов
  • строитель – позволяет создавать сложные объекты пошагово
  • прототип – позволяет копировать объекты, не вдаваясь в подробности их реализации
  • одиночка – гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа

 

Структурные шаблоны – это паттерны, которые отвечают за построение удобных в поддержке иерархий классов. Структурные шаблоны:

  • адаптер – позволяет объектам с несовместимыми интерфейсами работать вместе
  • мост – разделяет один или несколько классов на две отдельные иерархии – абстракцию и реализацию, позволяет изменять их независимо друг от друга
  • компоновщик – позволяет сгруппировать множество объектов в древовидную структуру, а затем работать с ней так, будто это единичный объект
  • декоратор – позволяет динамически добавлять объектам новую функциональность, оборачивая их в полезные ”обёртки”
  • фасад – предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку
  • легковес – позволяет вместить большее количество объектов в отведённую оперативную память
  • заместитель – позволяет подставлять вместо реальных объектов специальные объекты–заменители

 

Использование шаблонов помогает избежать многих ошибок и позволяет сократить время, используя проверенные решения. Также при работе в команде с другими разработчиками не обязательно объяснять, что вы сделали, а можно сказать название шаблона.

Каждый из шаблонов решает конкретную проблему, поэтому, прежде чем использовать какой-либо шаблон, нужно убедиться, что он подходит под решение вашей задачи.

          Практической задачей является разработка системы управления звуковым сопровождением. В начале мы создаем класс Sound, который описывает наш звуковой файл. Каждый звуковой файл в Unity, который должен быть представлен в игровой среде, описывается с помощью класса AudioSource. Класс AudioClip является контейнером, который хранит в себе информацию об аудиофайле.  

          Наш класс Sound содержит поле name, которое позволяет присвоить имя нашему аудиофайлу, чтобы в дальнейшем искать наш звуковой файл по имени.

          Любой звуковой файл имеет несколько характеристик. В нашем случае мы будем использовать следующие характеристики: volume – громкость (значения варьируются от 0 до 1), pitch – питч, loop – зацикливание.

          Перейдем к созданию класса AudioManager. Данный класс – система управления звуковыми файлами в Unity. В нем мы создаем массив, который состоит из наших звуковых файлов. Также в начале, а значит прописываем в методе Awake(), делаем проверку на содержание одного AudioManager на сцене, также вызываем метод DontDestroyOnLoad(), который не удаляет наш объект, при загрузке новой сцены.

          В методе Awake() заполняем наш массив, а также звуковые характеристики. Класс AudioManager содержит 2 метода: Play() и Stop(). Каждый из этих методов в качестве входных параметров принимает строку, а именно название звукового файла. Затем мы смотрим существует ли звуковой файл с таким названием. После этого метод Play() воспроизводит аудиофайл, а метод Stop() – останавливает. Таким образом в окне Inspector мы видим полноценную систему управления звуковыми файлами. Каждому звуковому файл мы присваиваем свое имя и необходимые нам характеристики, которые, в последствии, можем изменять.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться