People generally have doubt that when we use Hibernate we simply use configuration to create SessionFactory(). Using that we create session for JDBC connection. But all these SessionFactory and Session class are interfaces. But there is no class available with this name which implements methods of this class. Hibernate interfaces Session,SessionFactory,Transaction etc. are implementation of factory Pattern.i.e. We simply request for an object and its implementation class returns required object. a Hierarchy could be like this, net.sf.hibernate.Configuration class --> requests for --> net.sf.hibernate.SessionFactory interface --> which inturn builds a SessionFactory using --> net.sf.hibernate.impl.SessionFactoryImpl class Refer: (For factory Pattern) http://gsraj.tripod.com/design/creational/factory/factory.html Refer: (For control flow) Code attached
These days I have been doing some factory patterns and I think you can also refer to http://msdn2.microsoft.com/en-us/library/ms954600.aspx