Back to questions
Junior — Middle
67
Как можно организовать взаимодействие классов при реализации системы обмена файлами?
Answer from AI
sobes.tech AI
Для организации взаимодействия классов в системе обмена файлами можно использовать следующий подход:
- Класс File — представляет файл с атрибутами (имя, размер, тип, содержимое).
- Класс User — представляет пользователя, который может загружать и скачивать файлы.
- Класс FileManager — отвечает за операции с файлами: загрузка, хранение, удаление, поиск.
- Класс NetworkHandler — управляет передачей файлов между пользователями или серверами.
Пример взаимодействия:
- Пользователь вызывает метод загрузки файла у FileManager.
- FileManager сохраняет объект File и обновляет список файлов пользователя.
- Для передачи файла NetworkHandler устанавливает соединение и отправляет данные.
Пример на Python:
class File:
def __init__(self, name, content):
self.name = name
self.content = content
class User:
def __init__(self, username):
self.username = username
self.files = []
def upload_file(self, file, file_manager):
file_manager.store_file(self, file)
class FileManager:
def __init__(self):
self.storage = {}
def store_file(self, user, file):
self.storage[file.name] = file
user.files.append(file)
class NetworkHandler:
def send_file(self, file, recipient):
print(f"Sending {file.name} to {recipient.username}")
# Использование
fm = FileManager()
user1 = User('Alice')
user2 = User('Bob')
file = File('doc.txt', 'Hello World')
user1.upload_file(file, fm)
network = NetworkHandler()
network.send_file(file, user2)
Такое разделение ответственности упрощает поддержку и расширение системы.