factory is a design pattern where you create
several objects and their inter-relationships
with a single command. This pattern is one level
of abstraction higher than factory pattern.
This means that the abstract factory returns
the factory of classes. Like Factory pattern
returned one of the several sub-classes, this
returns such factory which later will return
one of the sub-classes.
One of the main advantages of Abstract Factory
Pattern is that it isolates the concrete classes
that are generated. The names of actual implementing
classes are not needed to be known at the client
side. Because of the isolation, you can change
the implementation from one factory to another.
for detail explanation on Abstract factory pattern