Sobes.tech
Back to questions
Junior — Middle
67

Как можно организовать взаимодействие классов при реализации системы обмена файлами?

Answer from AI

sobes.tech AI

Для организации взаимодействия классов в системе обмена файлами можно использовать следующий подход:

  1. Класс File — представляет файл с атрибутами (имя, размер, тип, содержимое).
  2. Класс User — представляет пользователя, который может загружать и скачивать файлы.
  3. Класс FileManager — отвечает за операции с файлами: загрузка, хранение, удаление, поиск.
  4. Класс 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)

Такое разделение ответственности упрощает поддержку и расширение системы.