Abstract Factory pattern, takes object creation one step further from Factory Method pattern by making the application independent of how products are created, composed and represented.
One difference is that, with Abstract Factory pattern a class delegates the responsibility object instantiation to another object via composition where as Factoy Method pattern uses inheritance and relies on subclass to handle the desired object instantiation.
It suggests that high-level components should not depend on low-level components for object creation; rather, both should depend on abstraction. In other words, The Abstract factory provides an interface for creating families of related objects without specifying their concrete classes.
