@startuml package com.iluwatar.object.pool { class OliphauntPool { + OliphauntPool() # create() : Oliphaunt } class Oliphaunt { - counter : int {static} - id : int + Oliphaunt() + getId() : int + toString() : String } abstract class ObjectPool { - available : HashSet - inUse : HashSet + ObjectPool() + checkIn(instance : T) + checkOut() : T # create() : T {abstract} + toString() : String } class App { + App() + main(args : String[]) {static} } } OliphauntPool --|> ObjectPool @enduml