74 lines
1.8 KiB
Plaintext
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 |