@startuml
skinparam BackgroundColor F0F0F0
skinparam linetype ortho
node "OwnerService" as owner{
class "ApplicationManager" as apm
class "APMController" as controller{
{method} sendAction(...)
}
abstract "sys::Service" as serv
serv <|-u-- apm
controller "use"-d--> apm
}
class "ActionsParams" as params
node "Provider" as provider {
class "NotificationProvider" as notProvider {
{field} ownerService *
{method} handle(...)
{method} send()
{method} requestNotSeenNotifications()
}
class "NotificationsChangedParams" as notifParams
notProvider -l..>notifParams
}
provider -[hidden]d- owner
notProvider "use"--> serv
notProvider "use"--> controller
params "use"<-- controller
notifParams --|>params
apm "creates"..>notProvider
@enduml