Skip to content

Ldv236/EventsFilter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модуль фильтрации

Описание

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

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

  • Event: Класс, представляющий событие, которое включает в себя список активностей.
  • Activity: Класс, представляющий активность в рамках события, с информацией о времени начала и окончания.
  • EventFilter: Интерфейс для фильтров, определяющих логику отсева событий.
  • EventFilterService: Сервис для работы со списком событий.
  • EventFilterContext: Класс для динамического формирования списка применяемых фильтров.

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

Название Описание
BeginInPastFilter Исключает события, в которых хотя бы одна активность начинается до текущего момента времени
EndBeforeBeginFilter Исключает события, в которых содержатся активности с временем окончания, установленным раньше времени начала
LongIntervalFilter Исключает события, где общее время между активностями превышает заданный лимит (например, два часа)

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

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

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

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages