/
telnov.ob
/
patterns
Обзор
Документация
Войти
/
telnov.ob
/
patterns
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Bridge/python/Bridge.py
65 строк
1 KB
georgedem
Bridge
15 авг 2022, 22:49
15 авг 2022, 22:49
30968b3
Код
Авторство
О чём код?
import abc class IDataReader(metaclass=abc.ABCMeta): @abc.abstractmethod def read(self): pass class DataBaseReader(IDataReader): def read(self): print("data from the database ", end='') class FileReader(IDataReader): def read(self): print("data from the file ", end='') class Sender(metaclass=abc.ABCMeta): def __init__(self, data_reader: IDataReader): self.reader: IDataReader = data_reader def set_data_reader(self, data_reader: IDataReader): self.reader: IDataReader = data_reader @abc.abstractmethod def send(self): pass class EmailSender(Sender): def __init__(self, data_reader: IDataReader): super().__init__(data_reader) def send(self): self.reader.read() print("sent by email") class TelegramBotSender(Sender): def __init__(self, data_reader: IDataReader): super().__init__(data_reader) def send(self): self.reader.read() print("sent by telegram bot") if __name__ == '__main__': sender: Sender = EmailSender(DataBaseReader()) sender.send() sender.set_data_reader(FileReader()) sender.send() sender = TelegramBotSender(DataBaseReader()) sender.send()