Skip to content

fifimova/Flights-filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Модуль Фильтрации Перелетов

Описание

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

Основные Компоненты

  • Flight: Класс, представляющий перелет, который включает в себя список сегментов.
  • Segment: Класс, представляющий сегмент в рамках перелета, с информацией о времени вылета и прилета.
  • FlightFilter: Интерфейс для фильтров, определяющих логику отбора перелетов.
  • FlightBuilder: Утилита для создания тестовых данных (перелетов).

Реализованные Фильтры

Название Описание
DepartureBeforeNowFilter Фильтрует перелеты, в которых есть сегменты с вылетом до текущего момента времени.
ArrivalBeforeDepartureFilter Фильтрует перелеты, в которых дата прилета любого сегмента раньше даты его вылета.
LongTransfersFilter Фильтрует перелеты, где общее время, проведенное на земле, превышает два часа.

Применение Принципов и Паттернов Проектирования

Паттерн Стратегия (Strategy Pattern)

Фильтры перелетов реализованы как набор стратегий, что позволяет легко добавлять новые виды фильтрации, не изменяя существующий код, а также динамически выбирать фильтры в рантайме.

Принцип Открытости-Закрытости (Open-Closed Principle)

Модуль разработан так, чтобы быть открытым для расширения (добавление новых фильтров), но закрытым для изменения (существующий код фильтров не требует модификации при добавлении новых фильтров).

Использование

Пример использования модуля можно найти в классе Main, где демонстрируется применение фильтров к списку тестовых перелетов.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages