@startuml Client -> Subject Subject <|- RealSubject Subject <|-- Proxy RealSubject <--o Proxy interface Subject { {abstract} +Request() } class RealSubject { +Request() } class Proxy { -aRealSubject +Request() } note right of Proxy Proxy::Request() { aRealSubject.Request(); } end note hide empty attributes hide empty methods @enduml