Задание
Условие
Реализуйте систему для представления структуры файловой системы с использованием паттерна "Компоновщик". В файловой системе есть два типа элементов: файлы и директории. Директории могут содержать как файлы, так и другие директории.
Необходимо создать абстракцию для элементов файловой системы и конкретные реализации для файлов и директорий. Также требуется создать метод для отображения содержимого директории и расчета общего размера файлов в ней.
Требования
Создайте интерфейс
FileSystemElement
, который определяет методыdisplay()
иget_size()
.Реализуйте классы
File
иDirectory
, которые будут использовать интерфейсFileSystemElement
.В классе
Directory
реализуйте метод для добавления элементов в директорию.Реализуйте метод для отображения содержимого директории.
Реализуйте метод для расчета общего размера файлов в директории.
Создайте клиентский код, который демонстрирует использование созданной системы.