Stephan van Hulst wrote:The objects can be related in any way. Maybe they need to work together, or perhaps they have similar responsibilities.
Thanks this makes sense, the example shown by you have one scenario where they have similar responsibilities. I'm sure there would be real world scenarios where it won't be really family of related objects.
But if think like this, since ProductA1 & ProducA2 have common super class AbstractProductA so they are family of related products. This may not hold true for AbstractProductA & AbstractProductB.
It would have been best if the stated INTENT had broader meaning. Example-
Intent
Abstract Factory offers the interface for creating multiple independent objects, without explicitly specifying their classes.