Проведенное исследование: Я читал о шаблоне стратегии и проектировании на основе интерфейса. Я понимаю, что нужно инкапсулировать каждый алгоритм в отдельный класс, но, будучи новичком, я бьюсь над тем, как динамически выбирать правильную стратегию в Python, не создавая при этом очередного бардака «if-elif» на заводе.
Код: Выделить всё
class DataProcessor:
def process(self, format_type, data):
if format_type == "json":
return f"Parsing JSON: {data}"
elif format_type == "xml":
return f"Parsing XML: {data}"
elif format_type == "csv":
return f"Parsing CSV: {data}"
else:
raise ValueError("Unsupported format")
# Usage
processor = DataProcessor()
print(processor.process("json", "{'key': 'value'}"))
- Каждый синтаксический анализатор представляет собой отдельный класс/стратегию.
- Процессор данных не нужно изменять при добавлении нового формата.
Как мне правильно реализовать это, чтобы мой код оставался масштабируемым?>