* Added FanOut/FanIn Pattern (#8) * #1627 adding fanout-fanin pattern * #1627 adding class diagram image * #1627 adding readme * #1627 adding license * #1627 updating relations * #1627 interrupting the thread * #1627 fixing sonar issues * #1627 fixing sonar issues * #1627 adding more info in README.md * Added FanOut/FanIn (#9) * #1627 adding fanout-fanin pattern * #1627 adding class diagram image * #1627 adding readme * #1627 adding license * #1627 updating relations * #1627 interrupting the thread * #1627 fixing sonar issues * #1627 fixing sonar issues * #1627 adding more info in README.md * #1627 adding programmatic examples in README.md
39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
@startuml
|
|
package com.iluwatar.fanout.fanin {
|
|
class App {
|
|
- LOGGER : Logger {static}
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
class Consumer {
|
|
- sumOfSquaredNumbers : AtomicLong
|
|
~ Consumer(init : Long)
|
|
+ add(num : Long) : Long
|
|
+ getSumOfSquaredNumbers() : AtomicLong
|
|
}
|
|
class FanOutFanIn {
|
|
+ FanOutFanIn()
|
|
+ fanOutFanIn(requests : List<SquareNumberRequest>, consumer : Consumer) : Long {static}
|
|
}
|
|
class SquareNumberRequest {
|
|
- LOGGER : Logger {static}
|
|
- number : Long
|
|
+ SquareNumberRequest(number : Long)
|
|
+ delayedSquaring(consumer : Consumer)
|
|
}
|
|
|
|
object SquareNumberRequest1
|
|
object SquareNumberRequest2
|
|
object SquareNumberRequest3
|
|
diamond dia
|
|
}
|
|
|
|
App --> FanOutFanIn
|
|
FanOutFanIn --> "fan out - running in parallel" SquareNumberRequest1
|
|
FanOutFanIn --> "fan out" SquareNumberRequest2
|
|
FanOutFanIn --> "fan out" SquareNumberRequest3
|
|
SquareNumberRequest1 --> "fan in - aggregate using callback" dia
|
|
SquareNumberRequest2 --> "fan in" dia
|
|
SquareNumberRequest3 --> "fan in" dia
|
|
dia --> Consumer
|
|
@enduml |