64 lines
1.6 KiB
Plaintext
64 lines
1.6 KiB
Plaintext
@startuml
|
|
package com.iluwatar.eda.handler {
|
|
class UserCreatedEventHandler {
|
|
- LOGGER : Logger {static}
|
|
+ UserCreatedEventHandler()
|
|
+ onEvent(event : UserCreatedEvent)
|
|
}
|
|
class UserUpdatedEventHandler {
|
|
- LOGGER : Logger {static}
|
|
+ UserUpdatedEventHandler()
|
|
+ onEvent(event : UserUpdatedEvent)
|
|
}
|
|
}
|
|
package com.iluwatar.eda.event {
|
|
abstract class AbstractEvent {
|
|
+ AbstractEvent()
|
|
+ getType() : Class<? extends Event>
|
|
}
|
|
class UserCreatedEvent {
|
|
- user : User
|
|
+ UserCreatedEvent(user : User)
|
|
+ getUser() : User
|
|
}
|
|
class UserUpdatedEvent {
|
|
- user : User
|
|
+ UserUpdatedEvent(user : User)
|
|
+ getUser() : User
|
|
}
|
|
}
|
|
package com.iluwatar.eda.framework {
|
|
interface Event {
|
|
+ getType() : Class<? extends Event> {abstract}
|
|
}
|
|
class EventDispatcher {
|
|
- handlers : Map<Class<? extends Event>, Handler<? extends Event>>
|
|
+ EventDispatcher()
|
|
+ dispatch(event : E extends Event)
|
|
+ registerHandler(eventType : Class<E extends Event>, handler : Handler<E extends Event>)
|
|
}
|
|
interface Handler<E extends Event> {
|
|
+ onEvent(E extends Event) {abstract}
|
|
}
|
|
}
|
|
package com.iluwatar.eda.model {
|
|
class User {
|
|
- username : String
|
|
+ User(username : String)
|
|
+ getUsername() : String
|
|
}
|
|
}
|
|
package com.iluwatar.eda {
|
|
class App {
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
}
|
|
UserCreatedEvent --> "-user" User
|
|
UserUpdatedEvent --> "-user" User
|
|
AbstractEvent ..|> Event
|
|
UserCreatedEvent --|> AbstractEvent
|
|
UserUpdatedEvent --|> AbstractEvent
|
|
UserCreatedEventHandler ..|> Handler
|
|
UserUpdatedEventHandler ..|> Handler
|
|
@enduml |