Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание проекта

Проект представляет собой реактивную систему обработки потоков событий , построенную на паттерне «Наблюдатель» (Observer). В нём реализованы:

  • Базовые компоненты: Observable, Observer, Disposable.
  • Операторы для преобразования и объединения потоков.
  • Планировщики потоков (Scheduler), управляющие выполнением задач в разных потоках.
  • Поддержка отмены подписок, логгирование через Log4j.

Стек

  • Java 17+
  • Maven — сборка и управление зависимостями
  • Log4j — логгирование
  • JUnit 5 — тестирование

Структура проекта

├── pom.xml
├── ReadMe.md
└── src/
    ├── main/
    │   ├── java/
    │   │   ├── dn/
    │   │   │   ├── dn.operator
    │   │   │   │   ├── Concat.java
    │   │   │   │   ├── Filter.java
    │   │   │   │   ├── FlatMap.java
    │   │   │   │   ├── Merge.java
    │   │   │   │   └── Reduce.java
    │   │   │   ├── dn.rx
    │   │   │   │   ├── Observer.java
    │   │   │   │   ├── Subscribe.java
    │   │   │   │   └── impl
    │   │   │   │       ├── CompositeDisposableImpl.java
    │   │   │   │       ├── DisposableImpl.java
    │   │   │   │       ├── DisposedAwareObserverImpl.java
    │   │   │   │       └── Observable.java
    │   │   │   ├── dn.scheduler
    │   │   │   │   ├── Scheduler.java
    │   │   │   │   └── impl
    │   │   │   │       ├── ComputationImpl.java
    │   │   │   │       ├── IOImpl.java
    │   │   │   │       └── SingleImpl.java
    │   │   │   └── dn.Main.java
    │   │   └── resources/
    │   │       └── log4j.properties
    │   └── test/
    │       └── java/
    │           ├── ObservableTest.java
    │           ├── OperatorTest.java
    │           └── SchedulerTest.java

Основные возможности

Компоненты

  • Observable.java - Источник данных. Методы:
    • create()
    • just()
  • Observer.java Интерфейс потребителя с методами:
    • onNext()
    • onError()
    • onComplete()

Операторы

Расположены в пакете operators:

  • Map.java - Преобразует каждый элемент потока
  • Filter.java - Отбирает элементы по условию
  • FlatMap.java - Преобразует элементы в новые потоки
  • Merge.java - Объединяет несколько потоков
  • Concat.java - Последовательно объединяет потоки
  • Reduce.java - Сворачивает поток в одно значение

Планировщики (Schedulers)

Позволяют управлять потоками выполнения:

Отмена подписки

Установка и запуск

  • mvn clean test - сборка и запуск тестов
  • mvn exec:java -Dexec.mainClass="org.example.dn.Main" - запуск демо

CodeCoverage

img.png

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages