@startuml set namespaceSeparator \\ namespace MyGame\\Rules\\Gestures { abstract Gestures << abstract >> { + getGestures(): array } interface IGestures << interface >> { + getGestures(): array } class RockPaperScissorsGestures { + {static} PAPER := 'P' {const} + {static} ROCK := 'R' {const} + {static} SCISSORS := 'S' {const} } class RockPaperScissorsLizardSpockGestures { + {static} ROCK := 'R' {const} + {static} PAPER := 'P' {const} + {static} SCISSORS := 'S' {const} + {static} SPOCK := 'V' {const} + {static} LIZARD := 'L' {const} } } MyGame\\Rules\\Gestures\\IGestures <|.. MyGame\\Rules\\Gestures\\Gestures MyGame\\Rules\\Gestures\\Gestures <|-- MyGame\\Rules\\Gestures\\RockPaperScissorsGestures MyGame\\Rules\\Gestures\\Gestures <|-- MyGame\\Rules\\Gestures\\RockPaperScissorsLizardSpockGestures @enduml