class Файл:
def __init__(self, имя):
self.имя = имя
class БазаВирусов:
def __init__(self):
self.вирусы = ["virus1.exe", "trojan.exe", "malware.exe"]
def проверить_на_вирус(self, файл):
return файл.имя in self.вирусы
class Сканер:
def __init__(self, база_вирусов):
self.база_вирусов = база_вирусов # Агрегация
def сканировать(self, файл):
if self.база_вирусов.проверить_на_вирус(файл):
return f"Файл {файл.имя} заражён!"
return f"Файл {файл.имя} безопасен."
class Антивирус:
def __init__(self):
self.база = БазаВирусов() # Композиция
self.сканер = Сканер(self.база)
def проверить_файл(self, имя_файла):
файл = Файл(имя_файла)
return self.сканер.сканировать(файл)
# Пример работы антивируса
антивирус = Антивирус()
print(антивирус.проверить_файл("virus1.exe"))
print(антивирус.проверить_файл("clean_file.txt"))
class Пользователь:
def __init__(self, имя):
self.имя = имя
self.друзья = [] # Композиция
def добавить_друга(self, друг):
if друг not in self.друзья:
self.друзья.append(друг)
друг.друзья.append(self) # Двусторонняя связь (агрегация)
def отправить_сообщение(self, друг, сообщение):
if друг in self.друзья:
return f"{self.имя} -> {друг.имя}: {сообщение}"
return f"{друг.имя} не является другом!"
class СоциальнаяСеть:
def __init__(self):
self.пользователи = {}
def зарегистрировать(self, имя):
пользователь = Пользователь(имя)
self.пользователи[имя] = пользователь
return пользователь
# Пример работы ВКонтакте
вк = СоциальнаяСеть()
user1 = вк.зарегистрировать("Алексей")
user2 = вк.зарегистрировать("Марина")
user1.добавить_друга(user2)
print(user1.отправить_сообщение(user2, "Привет, как дела?"))