Similar to the factory method, the abstract factory method allows us produce families of related objects without needing to specify their concrete class.

This is done by creating another layer of abstraction during the creation of objects, by making a factory for each family.

Each factory then produces its own 'style/line' of product for its family.