/
githubmirror
/
java-design-patterns
Обзор
Документация
Войти
/
githubmirror
/
java-design-patterns
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
event-based-asynchronous/etc/event-based-asynchronous.urm.puml
70 строк
2 KB
Ilkka Seppälä
docs: Event-Based Asynchronous explanation + refactor (#2916)
14 апр 2024, 13:10
Не верифицирован
14 апр 2024, 13:10
730907d
Код
Авторство
О чём код?
@startuml package com.iluwatar.event.asynchronous { class App { - LOGGER : Logger {static} + PROP_FILE_NAME : String {static} ~ interactiveMode : boolean + App() + main(args : String[]) {static} - processOption1(eventManager : EventManager, s : Scanner) - processOption2(eventManager : EventManager, s : Scanner) - processOption3(eventManager : EventManager, s : Scanner) + quickRun() + run() + runInteractiveMode() + setUp() } class AsyncEvent { - LOGGER : Logger {static} - eventId : int - eventListener : ThreadCompleteListener - eventTime : int - isComplete : AtomicBoolean - synchronous : boolean - thread : Thread + AsyncEvent(eventId : int, eventTime : int, synchronous : boolean) + addListener(listener : ThreadCompleteListener) - completed() + isSynchronous() : boolean + removeListener() + run() + start() + status() + stop() } interface Event { + start() {abstract} + status() {abstract} + stop() {abstract} } class EventManager { - DOES_NOT_EXIST : String {static} + MAX_EVENT_TIME : int {static} + MAX_ID : int {static} + MAX_RUNNING_EVENTS : int {static} + MIN_ID : int {static} - currentlyRunningSyncEvent : int - eventPool : Map<Integer, AsyncEvent> - rand : SecureRandom + EventManager() + cancel(eventId : int) + completedEventHandler(eventId : int) + create(eventTime : int) : int + createAsync(eventTime : int) : int - createEvent(eventTime : int, isSynchronous : boolean) : int - generateId() : int + getEventPool() : Map<Integer, AsyncEvent> + numOfCurrentlyRunningSyncEvent() : int + shutdown() + start(eventId : int) + status(eventId : int) + statusOfAllEvents() } interface ThreadCompleteListener { + completedEventHandler(int) {abstract} } } AsyncEvent --> "-eventListener" ThreadCompleteListener AsyncEvent ..|> Event EventManager ..|> ThreadCompleteListener @enduml