Abstract factory pattern. Factory Method vs Abstract Factory