Решить задачу на PHP
Написать класс-оболочку хранилища «Box».
В хранилище можно установить данные (setData($key, $value)), получить данные (getData($key)),
сохранить данные (save()) и загрузить данные (load())
$key — произвольный идентификатор данных
$value — скаляные данные или массив
Хранилище состоит из:
- Интерфейс описывающий методы установки данных, получения данных, сохранения и загрузки
- Абстрактный класс AbstractBox содержащий реализацию необходимых общих методов
- Класс FileBox расширяющий абстрактный класс AbstractBox. При вызове save() сохраняет заданные в класс данные в файл.
При вызове load() достает данные из файла.
- Класс DbBox расширяющий абстрактный класс AbstractBox. При вызове save() сохраняет заданные в класс данные в базу.
При вызове load() достает данные из базы.
Класс должен быть реализован таким образом, чтобы нельзя было создать более одного экземпляра класса.