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