@startuml package com.iluwatar.mutex { class App { + App() + main(args : String[]) {static} } class Jar { - beans : int - lock : Lock + Jar(beans : int, lock : Lock) + takeBean() : boolean } interface Lock { + acquire() {abstract} + release() {abstract} } class Mutex { - owner : Object + Mutex() + acquire() + getOwner() : Object + release() } } Jar --> "-lock" Lock Mutex ..|> Lock @enduml