java-design-patterns/half-sync-half-async/etc/half-sync-half-async.urm.puml
2019-12-07 18:03:49 +02:00

33 lines
836 B
Plaintext

@startuml
package com.iluwatar.halfsynchalfasync {
class App {
- LOGGER : Logger {static}
+ App()
- ap(i : long) : long {static}
+ main(args : String[]) {static}
}
~class ArithmeticSumTask {
- numberOfElements : long
+ ArithmeticSumTask(numberOfElements : long)
+ call() : Long
+ onError(throwable : Throwable)
+ onPostCall(result : Long)
+ onPreCall()
}
interface AsyncTask<O> {
+ call() : O {abstract}
+ onError(Throwable) {abstract}
+ onPostCall(O) {abstract}
+ onPreCall() {abstract}
}
class AsynchronousService {
- LOGGER : Logger {static}
- service : ExecutorService
+ AsynchronousService(workQueue : BlockingQueue<Runnable>)
+ close()
+ execute(task : AsyncTask<T>)
}
}
ArithmeticSumTask ..+ App
ArithmeticSumTask ..|> AsyncTask
@enduml