@startuml Prototype <|- ConcretePrototype Prototype <-- Client interface Prototype { {abstract} +Clone() : Prototype* } note right of Client: Prototype* aNewPrototype = aPrototype->Clone(); class ConcretePrototype { +Clone() : ConcretePrototype* } hide empty attributes hide empty methods @enduml