java-design-patterns/event-aggregator/etc/event-aggregator.urm.puml
2019-12-07 18:03:49 +02:00

74 lines
1.8 KiB
Plaintext

@startuml
package com.iluwatar.event.aggregator {
class App {
+ App()
+ main(args : String[]) {static}
}
enum Event {
+ STARK_SIGHTED {static}
+ TRAITOR_DETECTED {static}
+ WARSHIPS_APPROACHING {static}
- description : String
+ toString() : String
+ valueOf(name : String) : Event {static}
+ values() : Event[] {static}
}
abstract class EventEmitter {
- observers : List<EventObserver>
+ EventEmitter()
+ EventEmitter(obs : EventObserver)
# notifyObservers(e : Event)
+ registerObserver(obs : EventObserver)
+ timePasses(Weekday) {abstract}
}
interface EventObserver {
+ onEvent(Event) {abstract}
}
class KingJoffrey {
- LOGGER : Logger {static}
+ KingJoffrey()
+ onEvent(e : Event)
}
class KingsHand {
+ KingsHand()
+ KingsHand(obs : EventObserver)
+ onEvent(e : Event)
+ timePasses(day : Weekday)
}
class LordBaelish {
+ LordBaelish()
+ LordBaelish(obs : EventObserver)
+ timePasses(day : Weekday)
}
class LordVarys {
+ LordVarys()
+ LordVarys(obs : EventObserver)
+ timePasses(day : Weekday)
}
class Scout {
+ Scout()
+ Scout(obs : EventObserver)
+ timePasses(day : Weekday)
}
enum Weekday {
+ FRIDAY {static}
+ MONDAY {static}
+ SATURDAY {static}
+ SUNDAY {static}
+ THURSDAY {static}
+ TUESDAY {static}
+ WEDNESDAY {static}
- description : String
+ toString() : String
+ valueOf(name : String) : Weekday {static}
+ values() : Weekday[] {static}
}
}
EventEmitter --> "-observers" EventObserver
KingJoffrey ..|> EventObserver
KingsHand ..|> EventObserver
KingsHand --|> EventEmitter
LordBaelish --|> EventEmitter
LordVarys --|> EventEmitter
Scout --|> EventEmitter
@enduml