Skip to content

VladimirMonin/sulpak_discount_finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sulpak_discount_finder

Отлично, давайте разберемся с взаимодействием между классами в предложенной структуре программы. В этой структуре будет использоваться композиция, что означает, что экземпляры одних классов будут передаваться в другие классы в качестве аргументов конструктора или методов. Композиция предпочтительнее для создания модульной и гибкой архитектуры, поскольку она обеспечивает лучшее разделение ответственности и делает систему более гибкой.

  1. Класс Configuration:

    • Этот класс будет первым, который создастся. Он загрузит конфигурационные данные из файла или окружения.
  2. Класс WebDriverWrapper:

    • Экземпляр этого класса создается с помощью конфигурационных данных из Configuration для инициализации Selenium WebDriver.
  3. Класс ProductPageParser:

    • Этот класс не зависит от других и будет инстанцироваться отдельно.
  4. Класс DiscountFinder:

    • Экземпляр этого класса создается с передачей экземпляров WebDriverWrapper и ProductPageParser в конструктор, чтобы обеспечить доступ к функциональности управления браузером и анализа страниц.
  5. Класс CSVWriter:

    • Этот класс также инстанцировается отдельно и будет использоваться для записи данных в файл CSV.
  6. Класс DiscountScraperController:

    • Экземпляр этого класса создается с передачей экземпляра Configuration в конструктор.
    • Внутри DiscountScraperController, экземпляры WebDriverWrapper, ProductPageParser, DiscountFinder, и CSVWriter создаются и используются для координации процесса поиска и записи уцененных товаров.

Взаимодействие между классами:

  • DiscountScraperController играет роль оркестратора, создавая и используя экземпляры других классов для выполнения задач.
  • DiscountFinder зависит от WebDriverWrapper для навигации по сайту и от ProductPageParser для анализа страниц и извлечения данных о товарах.
  • CSVWriter используется DiscountScraperController для сохранения найденных данных в файл CSV.
  • Все классы используют данные из Configuration для конфигурации своего поведения, например, пути к драйверу браузера, URL-адреса сайтов и путь к выходному файлу CSV.

Эта структура обеспечивает четкое разделение ответственности и делает каждый компонент системы относительно независимым и заменяемым, что является хорошей практикой в объектно-ориентированном программировании.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages