I was reading in Peter Norvig's Design Patterns presentation.  From slide 13:Dynamic version needs only the Window classes.The classes themselves serve as factoriesThis works because classes are first-class values We can say make(c)Does it mean that Java and C# don't need the factory design pattern since they can pass around class type as a variable. 
Factory Design pattern in languages with class types
design patterns