This is used in EJB creation model. EJBHome defines an interface for creating
the EJBObject implementations. They are actually created by a generated
container class. See InitialContextFactory interface that returns an
InitialContext based on a properties hashtable.

2.Singleton: Ensure a class has only one instance, and provide a global
point of access to it.

There are many such classes. One example is javax.naming.NamingManager

3. Abstract Factory: Provide an interface for creating families of relegated
or dependent objects without specifying their concrete classes.

We have interfaces called InitialContext, InitialContextFactory.
InitialContextFactory has methods to get InitialContext.

4.Builder: Separate the construction of a complex factory from its
representation so that the same construction process can create different
representations.

InitialContextFactoryBuilder can create a
InitialContextFactory.

5. Adapter: Convert the interface of a class into another interface clients
expect.

In the EJB implementation model, we implement an EJB in a class that extends
SessionBean or a EntityBean. We don't directly implement the EJBObject/home
interfaces. EJB container generates a class that adapts the EJBObject interface
by forwarding the calls to the enterprise bean class and provides declarative
transaction, persistence support.

6. Proxy: Provide a surrogate for other object to control access to it.

We have remote RMI-CORBA proxies for the EJB's.

7. Memento: Without violating encapsulation, capture and externalize an
object's internal state so that the object can be restored to this state later.

Certainly this pattern is used in activating/passivating the enterprise beans
by the container/server.