Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
Alec Sharp
When we are using the Factory pattern, we make decision, based on a property of a class except than the factory class, so this, doesn't violate Tell, Don't Ask principle?