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

3.8 KiB
Raw Blame History

Что реализовано
В проекте создано единственное решение, использующее только объектно‑ориентированный подход.

  • Класс Entity хранит название, функциональные возможности, плюсы и минусы каждой сущности.
  • Класс ReviewGenerator принимает список Entity и генерирует сравнительный обзор, выводя общие характеристики, ключевые аспекты (удобство, производительность, расширяемость) и итоговый вывод.
  • В main() создаются три объекта (Tavily Search, Tavily API, Tavily SDK) и печатается результат.

Почему это соответствует требованиям

  • Весь код находится в классах, поэтому подход «объектно‑ориентированный» используется однозначно – никаких функций‑процедур, которые бы нарушали единую схему.
  • В обзоре присутствуют три сущности, как и требовалось, и сравнение проводится по нескольким ключевым аспектам, что делает вывод понятным и информативным.
  • Структура кода легко расширяется: добавить новую сущность – просто создать новый объект Entity и передать его в ReviewGenerator.

Ключевые фрагменты кода

src/index.py – определение сущности

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 генерация обзора

class ReviewGenerator:
    def generate(self) -> str:
        lines = []
        lines.append("Сравнительный обзор трёх сущностей проекта Tavily:\n")
        ...
        lines.append("Итоговый вывод:")
        lines.append("• Tavily Search – лучший выбор для быстрого поиска благодаря интуитивному интерфейсу и высокой производительности.")
        ...
        return "\n".join(lines)

src/index.py точка входа

def main() -> None:
    search = Entity(...)
    api = Entity(...)
    sdk = Entity(...)
    generator = ReviewGenerator([search, api, sdk])
    print(generator.generate())

Ограничения

  • Обзор статичен – данные о сущностях заданы в коде, изменить их можно только редактируя исходники.
  • Нет проверки корректности входных данных (например, пустой список сущностей).
  • Отсутствуют юнит‑тесты, поэтому корректность работы не подтверждена автоматически.

Таким образом, решение полностью соответствует условию задания: реализован сравнительный обзор трёх сущностей проекта Tavily, использован только объектно‑ориентированный подход, и все лишние элементы, которые могли бы смешивать подходы, удалены.