Name: Object Pool Intent: reuse (as opposed to recycle) objects that would be garbage collected Structure: - Pool has a store for reusable objects - Pool has two methods get and return with the obvious meaning - Pool needs cooperating clients - Reusable class is private inner and possibly static subclass of Pool (to insure constructor is unaccessible to clients) the needs interface Notes: - clean references to other object in reusable when it goes into the pool - reset references of object returned to the pool - initialize reusable object when given to client - pool should be a singleton - for each type of reusable there is different pool - store is very simple for linked reusable