@startuml
'figure 4: The Strategy Pattern'
skinparam monochrome true
skinparam handwritten false
skinparam shadowing false
skinparam classAttributeIconSize 0
hide class circle
hide abstract circle

abstract class Strategy {
    + someAction()
}

class Core {
    + strategy: Strategy
    + someAction()
}

class Implementation1 {
    + someAction()
}

class Implementation2 {
    + someAction()
}

Core::strategy *-- Strategy

Strategy <|.. Implementation1
Strategy <|.. Implementation2

@enduml
