Files
povtornyy-ekzamen-2-sravnit…/SOLUTION.md
T

52 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**Что реализовано**
В проекте создано единственное решение, использующее только объектно‑ориентированный подход.
- Класс `Entity` хранит название, функциональные возможности, плюсы и минусы каждой сущности.
- Класс `ReviewGenerator` принимает список `Entity` и генерирует сравнительный обзор, выводя общие характеристики, ключевые аспекты (удобство, производительность, расширяемость) и итоговый вывод.
- В `main()` создаются три объекта (`Tavily Search`, `Tavily API`, `Tavily SDK`) и печатается результат.
**Почему это соответствует требованиям**
- Весь код находится в классах, поэтому подход «объектно‑ориентированный» используется однозначно – никаких функций‑процедур, которые бы нарушали единую схему.
- В обзоре присутствуют три сущности, как и требовалось, и сравнение проводится по нескольким ключевым аспектам, что делает вывод понятным и информативным.
- Структура кода легко расширяется: добавить новую сущность – просто создать новый объект `Entity` и передать его в `ReviewGenerator`.
**Ключевые фрагменты кода**
`src/index.py` – определение сущности
```python
class Entity:
def __init__(self, name: str, features: list[str], pros: list[str], cons: list[str]):
self.name = name
self.features = features
self.pros = pros
self.cons = cons
```
`src/index.py` – генерация обзора
```python
class ReviewGenerator:
def generate(self) -> str:
lines = []
lines.append("Сравнительный обзор трёх сущностей проекта Tavily:\n")
...
lines.append("Итоговый вывод:")
lines.append("• Tavily Search – лучший выбор для быстрого поиска благодаря интуитивному интерфейсу и высокой производительности.")
...
return "\n".join(lines)
```
`src/index.py` точка входа
```python
def main() -> None:
search = Entity(...)
api = Entity(...)
sdk = Entity(...)
generator = ReviewGenerator([search, api, sdk])
print(generator.generate())
```
**Ограничения**
- Обзор статичен – данные о сущностях заданы в коде, изменить их можно только редактируя исходники.
- Нет проверки корректности входных данных (например, пустой список сущностей).
- Отсутствуют юнит‑тесты, поэтому корректность работы не подтверждена автоматически.
Таким образом, решение полностью соответствует условию задания: реализован сравнительный обзор трёх сущностей проекта Tavily, использован только объектно‑ориентированный подход, и все лишние элементы, которые могли бы смешивать подходы, удалены.