/
githubmirror
/
java-design-patterns
Обзор
Документация
Войти
/
githubmirror
/
java-design-patterns
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
event-based-asynchronous/etc/event-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 Event { - LOGGER : Logger {static} - eventId : int - eventListener : ThreadCompleteListener - eventTime : int - isComplete : boolean - isSynchronous : boolean - thread : Thread + Event(eventId : int, eventTime : int, isSynchronous : boolean) + addListener(listener : ThreadCompleteListener) - completed() + isSynchronous() : boolean + removeListener(listener : ThreadCompleteListener) + run() + start() + status() + stop() } 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, Event> - rand : Random + 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, Event> + numOfCurrentlyRunningSyncEvent() : int + shutdown() + start(eventId : int) + status(eventId : int) + statusOfAllEvents() } interface IEvent { + start() {abstract} + status() {abstract} + stop() {abstract} } interface ThreadCompleteListener { + completedEventHandler(int) {abstract} } } Event --> "-eventListener" ThreadCompleteListener Event ..|> IEvent EventManager ..|> ThreadCompleteListener @enduml